Code Monkey home page Code Monkey logo

create-block-theme's Introduction

Create Block Theme

Welcome to Create Block Theme - a WordPress plugin to create block themes from within the Editor.

It works alongside features that are already available in the Editor to enhance the workflow for creating block themes. After being tested in this plugin, some of the features included here may be moved into the Editor itself.

Disclaimer: Create Block Theme enables development features and thus is a tool that should be treated like as such; you can think of it as a Development Mode for WordPress, and you should keep in mind that changes made through this plugin could change your site and/or theme permanently.

This plugin allows you to:

  • Export your existing theme with all customizations made in the Editor
  • Create a new theme, blank theme, child theme, or style variation from the Editor

This plugin also makes several changes to the contents of an exported theme, including:

  • Adds all images used in templates to the theme's assets folder.
  • Ensures the block markup used in templates and patterns is export-ready.
  • Ensures most strings used in templates and patterns are translate-ready.

Learn more about Create Block Theme:

User Support

If you have run into an issue, you should check the Support Forums first. The forums are a great place to get help. If you have a bug to report, please submit it to this repository as an issue. Please search prior to creating a new bug to confirm its not a duplicate.

Plugin Features

Theme Creation Options

There are six options the plugin provides to create a new theme:

1. Export

Export the activated theme including the user's changes.

2. Create a child theme

Creates a new child theme with the currently active theme as a parent.

3. Clone the active theme

Creates a new theme by cloning the activated theme. The resulting theme will have all of the assets of the activated theme combined with the user's changes.

4. Overwrite theme files

Saves the user's changes to the theme files and deletes the user's changes from the site.

5. Generate blank theme

Generate a boilerplate "empty" theme inside of the current site's themes directory.

6. Create a style variation

Saves user's changes as a style variation of the currently active theme.

Embed Fonts

Save fonts in your theme that have been installed with the Font Library (found in WordPress 6.5+, more information).

How to Use the Plugin

Step 1: Setup

To use the latest release of the Create Block Theme plugin on your WordPress site: install from the plugins page in wp-admin, or download from the WordPress.org plugins repository.

There will be a new panel accessible from the WordPress Editor, which you can open by clicking on a new icon to the right of the "Save" button, at the top of the Editor.

In the WordPress Admin Dashboard, under Appearance there will also be a new page called "Create Block Theme".

Step 2: Styles and templates customizations

Make changes to your site styles, fonts and templates using the Editor.

Step 3: Save

Still in the WordPress Editor, navigate to the Create Block Theme menu at the top of the Editor.

To save recent changes made in the Editor to the currently active theme or export the theme:

  • Select "Save Changes to Theme" and select any options to customize what is saved
  • Check "Save Fonts" to copy the assets for any fonts installed and activated through the Font Library to the active font
  • Check "Save Style Changes" to copy your style changes made to the theme.json file
  • Check "Save Template Changes" to copy template changes made in the Editor to your activated theme.
  • With "Save Template Changes you may also select the following:
  • Check "Localize Text" to copy content to patterns from templates so that they can be localized for internationalization.
  • Check "Localize Images" to copy any images referenced in templates to the theme asset folder and reference them from a pattern.
  • Check "Remove Navigation Refs" to remove any navigation ref IDs from templates.
  • Click "Save Changes" to save any recent changes to the currently active theme.

To export your theme to a zip file ready to import into another system:

  • Select "Export Zip"

To edit the theme metadata:

  • Select "Edit Theme Metadata" to edit the metadata for the theme. These details will be used in the style.css file.

To create a new blank theme:

  • Select "Create Blank Theme"
  • Supply a name for the new theme (and optional additional Metadata)
  • Click "Create Blank Theme"

The theme will be created and activated.

To create a variation:

  • Select "Create Theme Variation"
  • Provide a name for the new Variation
  • Click "Create Theme Variation"

A new variation will be created.

To create a new Clone of the current theme or to create a Child of the current theme:

  • Click "Create Theme"
  • Click "Clone Theme" to create a new Theme based on the active theme with your changes
  • Click "Create Child Theme" to create a new Child Theme with the active theme as a parent with your changes

To inspect the active theme's theme.json contents:

  • Select "Inspect Theme JSON"

Many of these options are also available under the older, deprecated Create Block Theme page under Appearance > Create Block Theme.

To install and uninstall fonts:

  • Install and activate a font from any source using the WordPress Font Library.
  • Select "Save Changes" to save all of the active fonts to the currently active theme. These fonts will then be activated in the theme and deactivated in the system (and may be safely deleted from the system).
  • Any fonts that are installed in the theme that have been deactivated with the WordPress Font Library will be removed from the theme.

How to Contribute

We welcome contributions in all forms, including code, design, documentation, and triage. Please see our Contributing Guidelines for more information.

create-block-theme's People

Contributors

alexclassroom avatar andizer avatar audrasjb avatar chaosexanima avatar colorful-tones avatar creativecoder avatar cvladan avatar daisyolsen avatar desrosj avatar github-actions[bot] avatar jeffikus avatar jffng avatar jonathanbossenger avatar kafleg avatar madhusudhand avatar maggiecabrera avatar matiasbenedetto avatar mikachan avatar mrwweb avatar olein-jp avatar pbking avatar pedro-mendonca avatar ramonjd avatar ryanwelcher avatar savphill avatar scruffian avatar swissspidy avatar t-hamano avatar unscripted avatar vcanales avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

create-block-theme's Issues

Consider changing primary form button text

The plugin does so much more than Create Themes now, so it might be a good idea to change the button text to something like "Create", but that doesn't really work for the "Overwrite" option.

Maybe "Generate" is a better option.

Add "Save" option

Perhaps we could consider a "save" option for the theme. If the current option exports a .zip an additional option could be to "save" the theme where the changes get stored in the theme folder rather than exported as a .zip file.

This would allow the development experience of themes to happen in the FSE and be updated in what is my development environment allowing me to skip the export/unpack/copy/delete process that happens whenever I export the theme.

Consider including singular template in boiler-plate theme

Since it's not currently possible to create a singular or single post without the Gutenberg plugin it would be a more complete experience to create an empty theme if singular were present when generating an empty theme.

This would be a short term need since there should be a mechanism for creating a single post and single CPT template once Gutenberg is merged for 6.1

Template part does not save to child theme, but parent theme.json does

This is may be related to #67.

When I save changes to a child theme:

  • changed templates save as expected to the child templates folder
  • but changed template PARTS save to neither child nor parent, but are nonetheless removed from database, and lost

Also, the entire parent theme.json is saved to the child theme.json, which is not what I expected.

I expected only the differences to the parent theme.json to be saved to the child theme.json.

In my case I had only a new color palette in my child theme theme.json, so I expected that upon saving, the child theme.json would still have only the child color palette and nothing else.

My limited understanding is that on page load, objects in the child theme.json overwrite objects in the parent theme.json? If so, my concern is that any later update to the parent theme.json will no longer be visible because a prior version of the parent will have been copied into the child.

Create Block Theme 1.0.0 Release

For a 1.0.0 Release we will ensure that the plugin can do the following tasks:

Export your existing block theme

With a non-child theme activated export your theme to a .zip file. The theme.json in the exported package will include changes made via the FSE Global Styles editor. Any customizations or additions to block templates or block template parts will be included in the exported package.

With a child theme activated export your theme to a .zip file. The changes should be the same as an exported parent theme.

Create a Child theme from the activated Theme

With a non-child theme activated create a new theme and export it to a .zip file. The exported theme will have all of the changed made to templates and global styles.

Clone a non-child theme

Create a new theme based on the current activated theme but with changes made to templates and global styles. Limited resources will have namespaced resources refactored (such as function names in functions.php).

Clone a child theme

Create a new theme based on the current activated theme but with changes made to templates and global styles. (This is called a "sibling" theme). Limited resources will have namespaced resources refactored (such as function names in functions.php). The resulting new theme will be a child of the same theme the currently activated theme is a child of.

Refactor Namespaced Resources

When CLONING a PARENT or creating a SIBLING theme (cloning a child theme) the resulting resources could be namespaced.

For example functions like this:

function twentytwentytwo_support() {

should be refactored to:

function my_new_theme_support() {

and

wp_register_style('twentytwentytwo-style',...

to

wp_register_style('my-new-theme-style',...

We should consider the following resources when refactoring the namespace:

functions.php
??? what else ???

Overwrite option deletes some important keys

Overwrite
[Save USER changes as THEME changes and delete the USER changes. Your changes will be saved in the theme on the folder.]

Removes the following:

  • "$schema": "https://schemas.wp.org/trunk/theme.json",
  • "useRootPaddingAwareAlignments": true, (I think part of this issue is schema has to be updated "Property useRootPaddingAwareAlignments" is not allowed.)

Also puts version key all the way at the bottom of the theme.json?

  • "version": 2

I have been following similar setup to https://github.com/WordPress/twentytwentythree/blob/trunk/theme.json

Besides that it works pretty well!

Exporting with only Styles applied does not seem to work.

Apologies in advance if this is expected, or if I am doing something wrong, but I discovered that by creating a blank block theme, applying only some styles via the Styles panel in the Site Editor, when I export or clone the theme using Create Block Theme, the theme.json doesn't seem to be updated with the new styles.

However, when I export the theme using the Site Editor Export option, the theme.json is updated as expected.

Steps to reproduce:

  1. Create a block theme with only an empty style.css (except for the required header), theme.json with basic content (below), and a blank templates/index.html page.
  2. Activate the theme, and only apply some styles like background image, text color, etc via Site Editor, and save.
  3. Use the plugin page to either Export or Clone the theme

Original theme.json

{
  "version": 2,
  "settings": {
    "appearanceTools": true
  }
}

Exported/cloned theme.json

{
	"settings": {
		"appearanceTools": true
	},
	"version": 2
}

Expected theme.json (which I get via the Site Editor Export option).

{
	"$schema": "https://schemas.wp.org/wp/6.0/theme.json",
	"settings": {
		"appearanceTools": true
	},
	"styles": {
		"color": {
			"background": "var:preset|color|pale-cyan-blue",
			"text": "var:preset|color|vivid-cyan-blue"
		},
		"elements": {
			"link": {
				"color": {
					"text": "var:preset|color|vivid-purple"
				}
			}
		},
		"spacing": {
			"padding": {
				"bottom": "20px",
				"left": "20px",
				"right": "20px",
				"top": "20px"
			}
		}
	},
	"version": 2
}

Description missing with export clone

Description is missing when clone option used.

image

Active theme

image

Author changed to Anonymous and this makes sense.
But the description should get copied.

image

Unable to install new child theme or unzip file

After exporting a new child theme and trying to upload the zip through the theme importer I get:

”The package could not be installed. PCLZIP_ERR_BAD_FORMAT (-10) : Unable to find End of Central Dir Record signature“

When trying to unzip the file locally, I get:
”The operation couldn’t be completed. Inappropriate file type or format”

I’m working on an iPad Pro with the latest iOS -
the Blockbase theme is installed and activated

$schema URI should include WP Version

When the core theme export runs the $schema URI checks for Gutenberg to determine if the trunk version of the schema should be used, if Gutenberg is not present then the URI for the currently installed version of WordPress should be used instead.

Template part has been deleted or is unavailable: header

Hi !

I tried to make a child theme of Blockbase and I get these errors :

Capture d’écran 2021-12-14 à 10 15 25

I just modified the header to test a child theme.
Here is what I get in the zip file.

Capture d’écran 2021-12-14 à 10 16 51

It's a basic WP 5.8.2 without any plugins installed, just for the try.

Capture d’écran 2021-12-14 à 10 18 45

What am I doing wrong ?

Thanks !

Unable to Create Blockbase Theme

Hi,

When I go to Appearance > Create Blockbase Theme, fill in the fields and click the Create Blockbase Theme button, it just forwards me to WordPress login page.

I should note that the site I am using this on is in a sub directory (i.e. domain.com/site) and upon clicking the button, it forwards to the parent site login page (i.e. domain.com/wp-admin)

I have the following installed:

WordPress 5.82
Blockbase 1.4.3
Gutenberg 11.9.0
(no other plugins)

Any idea what the issue is here?

Thanks,
Troy

New option: save style variation

With the incoming new default theme being style variation focused, this plugin could have an option to generate Global style changes into a variation instead of creating a new theme. This will help users unfamiliar with theme.json syntax to create a new style variation for a theme.

Readme.txt: Fix several issues with contributors list

I recently ran into an issue where Create Block Theme was not showing in the wordpressdotorg user's list of plugins.

Please see this meta ticket for details:

https://meta.trac.wordpress.org/ticket/6539

In exploring the cause, it turns out that there are a couple of issues in the Create Block Theme's readme:

1 - "Author" is not a valid readme field and should be removed entirely:

Author: @wordpressdotorg

2 - Usernames in readme files should not include the @ so they should be removed here:

Contributors: @chaosexanima, @mikachan, @onemaggie, @pbking, @scruffian

3 - chaosexanima is not a WordPress.org username: https://profiles.wordpress.org/chaosexanima/ It should either be swapped out for the correct WP.org username, or removed.

4 - The wordpressdotorg user should be added first to the list of contributors

Thanks for having a look when you're able!

Add the `$schema` key to theme.json

When creating a theme, the generated theme.json does not include the $schema key, and so doesn't automatically format the file.

We should add the following to the start of the generated theme.json:

"$schema": "https://schemas.wp.org/trunk/theme.json"

Feature request: Overwrite mode

I would love to have a "Dev mode / Overwrite mode" that would never write any templates to the database, but always save them directly to the theme files instead.

I tested the Gutenberg patch that got dropped in favor of this, and I actually somewhat liked it better to be able to save templates from the editor itself. Not exactly like it was done, I rather just have one button to save all templates. Or, even better, what I suggested above.

As I am developping my first FSE theme, the only option that makes sense to me is to overwrite. And it's an additional hassle to have another tab open and having to manually save the template changes. The menu is very out-of-place IMO, it would be more fitting to have it directly inside the Site Editor, or at least the override option.

Fatal error or network error

I've tried with 5.8.3, 5.9 rc-2 with and without Gutenberg installed. I'm getting a fatal error or just a blank page. The fatal error is the same as in #20

Fatal error: Uncaught Error: Call to undefined function gutenberg_get_block_templates() in /home/digitaldepotco/public_html/betelgeuse/wp-content/plugins/create-blockbase-theme-trunk/index.php:156 Stack trace: #0 /home/digitaldepotco/public_html/betelgeuse/wp-content/plugins/create-blockbase-theme-trunk/index.php(245): gutenberg_edit_site_export_theme_create_zip('/tmp/betelgeuse...', Array) #1 /home/digitaldepotco/public_html/betelgeuse/wp-content/plugins/create-blockbase-theme-trunk/index.php(323): gutenberg_edit_site_export_theme(Array) #2 /home/digitaldepotco/public_html/betelgeuse/wp-includes/class-wp-hook.php(307): blockbase_save_theme('') #3 /home/digitaldepotco/public_html/betelgeuse/wp-includes/class-wp-hook.php(331): WP_Hook->apply_filters(NULL, Array) #4 /home/digitaldepotco/public_html/betelgeuse/wp-includes/plugin.php(474): WP_Hook->do_action(Array) #5 /home/digitaldepotco/public_html/betelgeuse/wp-admin/admin.php(175): do_action('admin_init') #6 /home/digitaldepotco/public_html/betelgeuse/wp-admin/themes.php( in /home/digitaldepotco/public_html/betelgeuse/wp-content/plugins/create-blockbase-theme-trunk/index.php on line 156

Create boilerplate theme

Sorry if this question is naive!

What do you think about adding a fifth option to the plugin — create a new boilerplate theme from scratch, maybe based on block-canvas or something like it?

When I meet folks that are new to block theming, the first thing they always ask is for a reference point — a starter, boilerplate block theme. Also the name of this plugin implies it could create a "new" theme, to me, maybe disconnected from the currently active one. (This is the perspective of someone who has used "create-react-app" before coming to WordPress, and using that utility results in a blank application, granted there's more tooling and overhead involved there because of webpack...)

This might make more sense as a CLI or maybe even in Gutenberg itself, but wanted to ask in any case.

Add Theme Screenshot Upload to Export Form

It would be helpful if the theme creation options allowed users to upload a unique screenshot that would be packaged with the theme download. This will make the newly created themes look much nicer when they are shared and installed on another WordPress site and make them easier to distinguish from other themes that might have been generated this way.

Child theme of blockbase theme : customizer not available anymore.

Hi there !

I'm using blockbase theme and created a child theme with the create blockbase theme plugin.
When I activate my child theme, I don't have a full access to the customizer and the customization I made were not applied (background color, fonts…).

Here is what I see in the child theme :

Capture d’écran 2021-12-22 à 15 02 43

Capture d’écran 2021-12-22 à 15 03 06

And in the parent theme (blockbase) :

Capture d’écran 2021-12-22 à 15 03 06

Capture d’écran 2021-12-22 à 15 05 13

What am I doing wrong ?

Thanks !

Allow Users To Save Patterns via Editor UI

There's a related/similar idea in this issue but we didn't pursue it since it creates some confusion or the average user with reusable blocks.

Since this plugin is meant to be used by theme creators, it would make sense to give them the ability to save their patterns while they are creating them instead of having to go in and register them as a totally separate step.

I think this can be as easy as adding this option to the Group block but I don't have strong feelings about the experience as long as it's available in the actual editor.

Manage fonts: Disallow duplicate fonts

Currently the plugin has no mechanism to identify the duplicate fonts, and it lets duplicate fonts to be added.

image

It can be improved by identifying the duplicates (the google fonts) with name or some other information such as fontID, and disable them to be added again to the theme (and may be a label indicating it already added to the theme, to avoid confusion of why a font is disabled).

image

Changes to override option proposal

I have two proposals to 'Override theme' option:

  1. Change the button to 'Override theme' when this option is selected. Now the button is the same that with the other options: Export theme, and the action is really different.
  2. Add a Warning when the option 'Override theme' gets selected to inform the user cristal clear that when click the button the active theme will be overridden, not exported

Thanks!

Several Missing Block Pattern Templates when Cloning Blockbase Theme

I was experimenting with the plugin and making changes to the Blockbase theme. When I import the cloned theme into another local WordPress install, I get several errors regarding missing block pattern templates. For example:

Warning: file_get_contents(www.mytestsite.dev.cc/wp-content/themes/cloneofblockbase/block-template-parts/header-centered.html): failed to open stream: No such file or directory in www.mytestsite.dev.cc\wp-content\themes\cloneofblockbase\inc\block-patterns.php on line 55

Exporting as a child theme seems to be a good workaround at this point.

Error message, can't create a child theme

Here is my error when creating a child theme for the block theme "skatepark" by automattic.
(Win 10, WordPress 6.0, theme skatepark, on localwp (by flywheel)
Help is much appreciated.
Error-Message-01-06-2022
class-create-block-theme-admin php

Validate the form

Right now we are not validating the form in any capacity. At the very least we need to make the name of the theme required and sanitize all the inputs submitted by the user.

Exported theme has minor line height difference in theme.json

Hi,

First of all, thanks for this plugin. I just installed it, but I already see the benefits for me as a theme developer.

I noticed a small issue: the line-height values in the exported theme's theme.json file were slightly off:

Original:

"line-height": {
	"tiny": 1.1,
	"small": 1.2,
	"medium": 1.4,
	"normal": 1.725
}

Export:

"line-height": {
	"medium": 1.3999999999999999,
	"normal": 1.7250000000000001,
	"small": 1.2,
	"tiny": 1.1000000000000001
}

Apparently they are also sorted different 😜

Fonts for non universal themes

Thinking about updating the plugin to include non universal themes, the problem with choosing fonts for the theme comes to mind. Here's an idea:

On the form we can include the option to add a specific font, then generate a functions.php file that enqueues that. We would have to add that same font to the theme.json file we are generating too.

How many fonts can a user choose for a theme? How do we handle different weights/styles? Do we include the font files or do we use google fonts links?

Consider Clearing User Changes

When EXPORTING a theme if the theme with changes is installed again (or if something like saving a theme happens) then USER changes are still shown. We may want to consider clearing the user changes when a theme is SAVED (essentially moving that changes from 'user space' to 'theme space' rather than COPYING from 'user space' to 'theme space'.

clone of blockbase theme doesn't render patterns

Plugin creates clone of the theme successfully.
But it creates with new directory structure for parts and templates but not for patterns.

block-template-parts => parts
block-templates => templates
inc/patterns => inc/patterns

UI doesn't render the patterns in the newly created theme.

Improve Instructions

The instructions and descriptions given on the form are not very clear and designed poorly.

Update the form to give clear instructions and descriptions of the options. (What should this be? How should it be designed?)

Update the form to better handle required fields (Name should be required when prompted). Javascript might be necessary to handle this.

Warnings for dependencies

We should alert the user when any of the dependencies are not present:

  • Check that GB is installed, active and is the latest version (or one we define is needed for the plugin)
  • Check that Blockbase is installed. Maybe warn the user if the version is not the latest, but allow them to use it if it's not.
  • Check that the active theme is Blockbase or one of its children

Overwriting local theme fails if folder doesn't exist.

This was discovered during @DaisyOlsen WCUS workshop. We created 3 template parts via the Site Editor and there was no parts directory in the theme. Running the Overwrite {Theme Name} Theme command caused a fatal error.

It looks like adding a check for the folder and creating it before trying to write the files would address the issue - https://github.com/WordPress/create-block-theme/blob/trunk/admin/class-create-block-theme-admin.php#L595

Steps to Reproduce

  1. Create a custom theme
  2. Do not include a parts directory
  3. Create a Header and Footer template part via the Site Editor and save.
  4. Run the Override functionality.

I18N: Some new UI strings are not translatable

The uploaded screenshot shows some UI strings cannot be translated, please make the following UI strings translatable.

  • Info
  • This is a list of your font families listed in the theme.json file of your theme.
  • If your theme.json makes reference to fonts providers other than local they may not be displayed correctly.
  • These are the fonts currently embedded in your theme
  • Weight
  • Preview
  • Remove Font Family
  • Remove
  • This action will delete the font definition and the font file assets from your theme.
  • Are you sure you want to delete "style-name" variant of "font-name" from your theme?
  • Are you sure you want to delete "font-name" from your theme?

gutenberg l - 20221026 - 132257
gutenberg l - 20221026 - 133423

Downloads empty zip file

Hi,

When I go to Appearance > Create Blockbase Theme, fill in the fields and click the Create Blockbase Theme button, it downloads a .zip file succesfully, but the file is 0 bytes. When I try to unzip it, I get a .zip.cpgz file, which I'm unable to open.

I have the following installed:

WordPress 5.82
Blockbase 1.4.3
Gutenberg 11.9.0
(no other plugins)

Thanks,
Troy

Site editor changes are not copied to child/sibling themes

Problem

Site editor changes are not copied in new themes.

Steps

  • Create a child theme of Blockbase (call it Blockbase Child) and activate.
  • Do edit to post and footer in site editor
  • Now create a clone or sibling theme and activate it.
  • Observe that only few updates copied to new theme.

Update post content styles

Updated style of index/footer

Now create a clone or sibling theme and activate it.
Observe that only few updates copied to new theme.

image

Parts is empty and templates has only index.html

image

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.