Giter Club home page Giter Club logo

material.nvim's Introduction

material.nvim

Neovim Lua

The original Material theme now available for NeoVim


πŸ”± Info

A port of Material colorscheme for NeoVim written in Lua

Material.nvim is meant to be a fast and modern colorscheme written in Lua that supports a lot of the new features added to NeoVim like built-in LSP and TreeSitter

🌊 Features

  • 5 styles to choose from

    • Oceanic 2022-04-18-01:21:38-screenshot

    • Deep ocean 2022-04-18-01:21:16-screenshot

    • Palenight 2022-04-18-01:21:33-screenshot

    • Lighter 2022-04-18-01:21:28-screenshot

    • Darker 2022-04-18-01:21:22-screenshot

  • Many supported plugins

  • Ability to change background on sidebar-like windows like Nvim-Tree, Packer, terminal etc.

  • Asynchronous highlight loading which makes the theme blazingly fast

  • Ability to select styles using telescope.nvim

  • Added functions for live theme switching without the need to restart NeoVim

  • Two Lualine themes

    • Default: default-oceanic default-darker default-deep-ocean default-palenight default-lighter

    • Stealth stealth-oceanic stealth-darker stealth-deep-ocean stealth-palenight stealth-lighter

⚑️ Requirements

  • Neovim >= 0.7.0

βš“ Installation

Install via your favourite package manager:

-- If you are using Packer
use 'marko-cerovac/material.nvim'

🐬 Usage

Enable the colorscheme:

--Lua:
vim.cmd 'colorscheme material'

For a comlete guide on usage and configuration of the theme, see :help material.nvim.

βš™οΈ Configuration

  • There are 5 different styles available:
    • darker
    • lighter
    • oceanic
    • palenight
    • deep ocean

Set the desired style using:

--Lua:
vim.g.material_style = "deep ocean"

The configuration of different options is done trough a setup function

This is an example of the function with the default values

require('material').setup({

    contrast = {
        terminal = false, -- Enable contrast for the built-in terminal
        sidebars = false, -- Enable contrast for sidebar-like windows ( for example Nvim-Tree )
        floating_windows = false, -- Enable contrast for floating windows
        cursor_line = false, -- Enable darker background for the cursor line
        lsp_virtual_text = false, -- Enable contrasted background for lsp virtual text
        non_current_windows = false, -- Enable contrasted background for non-current windows
        filetypes = {}, -- Specify which filetypes get the contrasted (darker) background
    },

    styles = { -- Give comments style such as bold, italic, underline etc.
        comments = { --[[ italic = true ]] },
        strings = { --[[ bold = true ]] },
        keywords = { --[[ underline = true ]] },
        functions = { --[[ bold = true, undercurl = true ]] },
        variables = {},
        operators = {},
        types = {},
    },

    plugins = { -- Uncomment the plugins that you use to highlight them
        -- Available plugins:
        -- "coc"
        -- "dap",
        -- "dashboard",
        -- "eyeliner",
        -- "fidget",
        -- "flash",
        -- "gitsigns",
        -- "harpoon",
        -- "hop",
        -- "illuminate",
        -- "indent-blankline",
        -- "lspsaga",
        -- "mini",
        -- "neogit",
        -- "neotest",
        -- "neo-tree",
        -- "neorg",
        -- "noice",
        -- "nvim-cmp",
        -- "nvim-navic",
        -- "nvim-tree",
        -- "nvim-web-devicons",
        -- "rainbow-delimiters",
        -- "sneak",
        -- "telescope",
        -- "trouble",
        -- "which-key",
        -- "nvim-notify",
    },

    disable = {
        colored_cursor = false, -- Disable the colored cursor
        borders = false, -- Disable borders between verticaly split windows
        background = false, -- Prevent the theme from setting the background (NeoVim then uses your terminal background)
        term_colors = false, -- Prevent the theme from setting terminal colors
        eob_lines = false -- Hide the end-of-buffer lines
    },

    high_visibility = {
        lighter = false, -- Enable higher contrast text for lighter style
        darker = false -- Enable higher contrast text for darker style
    },

    lualine_style = "default", -- Lualine style ( can be 'stealth' or 'default' )

    async_loading = true, -- Load parts of the theme asyncronously for faster startup (turned on by default)

    custom_colors = nil, -- If you want to override the default colors, set this to a function

    custom_highlights = {}, -- Overwrite highlights with your own
})

After passing the configuration to a setup function, make sure to enable the colorscheme:

vim.cmd 'colorscheme material'

This is an example of overwriting the default highlights and colors (most users will never need to do this)

local material = require 'material'
local colors = require 'material.colors'

material.setup{
    custom_highlights = {
        LineNr = { bg = '#FF0000' },
        CursorLine = { fg = colors.editor.constrast , underline = true },

        -- Dynamically override highlight groups with functions to ensure colors are
        -- updated when changing styles at runtime
        TabLine = function(colors, _)
            return {
                fg = colors.main.gray,
                italic = true,
            }
        end,
        TabLineSel = function(_, highlights)
            return vim.tbl_extend(
                "force",
                highlights.main_highlights.editor()["TabLineSel"],
                { bold = true }
            )
        end,

        -- This is a list of possible values
        YourHighlightGroup = {
            fg = "#SOME_COLOR", -- foreground color
            bg = "#SOME_COLOR", -- background color
            sp = "#SOME_COLOR", -- special color (for colored underlines, undercurls...)
            bold = false, -- make group bold
            italic = false, -- make group italic
            underline = false, -- make group underlined
            undercurl = false, -- make group undercurled
            underdot = false, -- make group underdotted
            underdash = false, -- make group underslashed
            striketrough = false, -- make group striked trough
            reverse = false, -- reverse the fg and bg colors
            link = "SomeOtherGroup" -- link to some other highlight group
        }
    },

    -- Custom colors must be a function that takes in the default colors table as
    -- a paramter, and then modifies them.
    -- To see the available colors, see lua/material/colors/init.lua
    custom_colors = function(colors)
        colors.editor.bg = "#SOME_COLOR"
        colors.main.purple = "#SOME_COLOR"
        colors.lsp.error = "#SOME_COLOR"
    end
}

To enable transparency, it is suggested you disable the theme background from the settings above. That way, your terminal's background will be used instead.

require('material').setup({
    -- ... other settings
    disable = {
        -- ... other settings
        background = true, 
    },
})

To enable the lualine themes, first set the theme in your lualine settings to auto or material

require('lualine').setup {
  options = {
    -- ... your lualine config
    theme = 'auto'
    or
    theme = 'material'
    -- ... your lualine config
  }
}

Then, choose the style trough a variable called lualine_style in the theme setup function

require('material').setup({
    lualine_style = 'default' -- the default style
    or
    lualine_style = 'stealth' -- the stealth style
})

If the theme, doesn't look right, it's probably because material.nvim is being loaded before lualine, causing the other material theme that comes built-in to lualine to be used. To fix this, either load material.nvim after lualine (preferred way) or set the lualine theme to one of these two values in your lualine settings

require('lualine').setup {
  options = {
    -- ... your lualine config
    theme = 'material-nvim' -- the default style
    or
    theme = 'material-stealth' -- the stealth style
    -- ... your lualine config
  }
}

β›΅ Functions

  • Use Telescope.nvim to switch styles

telescope_finder

:lua require("material.functions").find_style()
  • Cycle trough styles
:lua require('material.functions').toggle_style()
  • Toggle the end of buffer lines ( ~ )
:lua require('material.functions').toggle_eob()
  • Change the style to a desired one using the function change_style("desired style")
:lua require('material.functions').change_style("palenight")

material.nvim's People

Contributors

aceforeverd avatar cesarfuhr avatar chaitanyabsprip avatar christsou avatar embe221ed avatar epwalsh avatar georgeiliadis91 avatar har7an avatar hi-jklmn avatar ianhomer avatar jrowlingson avatar kuntau avatar lars-vc avatar marko-cerovac avatar mrcjkb avatar nicola-bini avatar niyabits avatar nkakouros avatar okuuva avatar pjdietz avatar qoeb avatar raafatturki avatar rgnkn avatar rti avatar sbeyer avatar scthijsse avatar shubham-cpp avatar smiteshp avatar vxio avatar yagua 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

material.nvim's Issues

split sidebar bg and float bg

Hello,
It would be great to have an option to define a separate background-color for each the sidebar and the float popup.

For example, I like to have my tree on the left to have the same color as my normal editview, but the floating popup on DEEP OCEAN is barely distinguible from the edit view.

Thanks for this great colorscheme!

Custom_highlights not working

The following is my whole config on the theme. Everything works fine, I just want to set some colors because they blend too much on my monitor...
image

I've put this config on LineNr to show that is not working, this hex should mean red but any color that I put, turns out white. That happens on the other config mentioned on readme as well... I've tested the other themes, and seem that is not applying the colors or the custom_highlights erase and leave the default value, idk.

Other thing, what are all the custom highlights that I can put there? I did not found on the doc and looking in the code (not understanding much) could not find a reference... could you add on the doc please?

Just updated and italics stopped showing

Updated the colorscheme using minpac and italics stopped showing in my init.vim where they were before. Tried setting italic strings in both lua and vimscript and they haven't come back.

Filenames in nvim-tree.lua are hard to read

For some reason simple filenames in my nvim-tree.lua are hard to read - they have dark gray color on a dark background, making it hard for my eyes, but I have no idea which highlight to change (nvim-tree uses lua to se the hightlight and I have no idea how get the group).
image

Neogit status - unreadable on hover

I'm using the deep ocean variant and when I hover over a section in :Neogit, it turns into black on black resulting in unreadable text.

material-nvim-neogit.mp4

loading and unloading the theme doesn't work correctly

I've found two issues that might make the colorscheme work incorrectly depending on what highlight groups the user was using before.

  1. it appears ColorBuddy doesn't do a hi clear, before setting the highlight groups
  2. material.vim only requires the material lua file, but since requires are cached, the theme will only load the first time. Try switching to a default theme and then back to material. won't work. To fix this, you should probably wrap the lua file in a function and call that function from the vim colors file.

Underline should not change color

Thanks for the fix with the lsp colors!

The addition of the underline is great, but you should probably not change the colors in that group. Just add an underline style, like gui=undercurl.

How it looks right now:
image

With just underline set (from zephyr theme)
image

Background changes when more than a couple files are opened

I am using the oceanic variant. When I open my file explorer (nvim-tree.lua), the backgrounds are different (which is great!):
image

If I open a few file in other tabs, all of a sudden the background of those buffers matches the file explorer's background:
image

The best I can tell, it's when I open a file from another folder. Yet, any other file I open afterward has this background.

Also, after pasting this screenshot, I just noticed the line numbers have disappeared as well.

Startup error in lua due to unitialized config.options table

I get the following error on startup

E5108: Error executing lua ...plugged/material.nvim/lua/material/colors.lua:55: attempt to index field 'text_contrast' (a nil value)

I believe this is because the table in lua/material/config.lua is not initialized, so any require('material/config') gives you a table without the defaults (including the nested tables). A call to setup in config.lua has fixed this for me:

Config.setup()
return Config

I am using

$ nvim --version
NVIM v0.5.0
Build type: RelWithDebInfo
LuaJIT 2.1.0-beta3
...

and I am loading the theme in my init.vim without any lua configuration of the colorscheme. I do configure lualine with the material theme though.

let g:material_style = 'darker'
colorscheme material

clarify setup function and how to remove warnings

  1. The README still shows usage of set()here.
  2. Changing it to setup() did not remove warnings. So use { 'marko-cerovac/material.nvim', config = function() require('material').setup() end } --<l>m did not make message go away.
  3. Why is vim.cmd[[colorscheme material]] required? Any technical reasons? Toggling colors also enables them, ie with map('n', '<leader>m', [[<cmd>lua require('material.functions').toggle_style()<CR>]], opts) everything works, so I am surprised that I need an additonal config option.

Higher contrast for self keyword (Python) palenight theme

Thank you for such great colorscheme. I would like to ask whether it is possible to make the self keyword in Python a little bit more differentiable? Self keyword has the same color as parameters so it's quite difficult to differentiate between a function and a class method.

low visual difference on pyton code

Here is dark version of material theme on my python code:
image

The variables names are almost same color as comments. I think bumping brightness of variables by 30% could help differentiate them from comments. Thanks for great theme

Configuring in vimscript seems not to work.

let g:material_italic_comments = 1                                                                                                                                     
let g:material_italic_strings = 1                                                                                                                                       
colorscheme material                                                                                                                                                    
"here is a comment                                                                                                                                                      
let str = "a_string"                                                                                                                                                                     

as example.vim

and then open it, and use it as my vimrc: vim example.vim -u example.vim . No italic comments or strings.

But the comment and the string are not italic.

It does work, however when I use this example config file:

lua vim.g.material_italic_comments = true                                                                                                                               
lua vim.g.material_italic_strings = true                                                                                                                                
colorscheme material                                                                                                                                                    
                                                                                                                                                                        
"comment                                                                                                                                                                
let str_example = "string"                                                                                                                                              

Disable tilde at end of buffer

Option to disable the tildes "~" at the empty of end of a buffer.
If you don't know what I'm talking about, here's a picture:
image

Wrong background color with the latest commit

I just ran plugin update for my local nvim and noticed the background color (or more) of "deep ocean" is wrongly displayed.
Screen Shot 2021-04-17 at 8 35 33 PM

I then changed material.nvim and colorbuddy installation to these commits:

  use {
    'tjdevries/colorbuddy.nvim',
    commit = 'cb9e044ebf0b690a56ebb4018cf300703f8dbec1'
  }
  use {
    'marko-cerovac/material.nvim',
    commit = '4ea2318b495ae1da5fa3fb96fe90992efcf54988'
  }

and the color was fine again:
Screen Shot 2021-04-17 at 8 38 22 PM

[Question] How to use custom_highlights

Is it possible to change the color of the comments? I would like the color green or a bright one, because they blend too much with my monitor. Also, could I change the color of a certain word? I would like the work 'TODO' to be yellow or something like that to get more attention. Thanks.

Set color of whitespace characters

In my neovim config file I have set it to render spaces and tabs using the following configuration:

vim.o.list = true
vim.o.list = 'tab:β–Έ ,space:Β·'

This doesn't however look very great using this theme:
spaces_and_tabs

Is there a way to set the color of the whitespace characters? Preferably I would like them to be even less visible than comments. But being equal to comments would be an improvement over how they are rendered now.

Wrong Diagnostic Colors in LuaLine

The inline and sign column colors for diagnostics look correct, however the colors in lualine seem to be defaulting to colors outside the theme.

image

How to use custom_highlights

My configuration:

use { -- Colorscheme
    'marko-cerovac/material.nvim',
    branch = 'main',
    config = function()
        vim.g.material_style = 'deep ocean'
        require'material'.setup({
            contrast = true,
            borders = true,

            contrast_windows = {
                "terminal", -- Darker terminal background
                "term", -- Darker terminal background
                "packer", -- Darker packer background
                "qf" -- Darker qf list background
            },

            disable = {term_colors = true},

            custom_highlights = {
                DiffAdd = '#002500',
                DiffDelete = '#250000'
            }
        })
        vim.cmd [[colorscheme material]]
    end
}

However DiffAdd is set to ctermbg=4 which is practically invisble in my setup.

So my question is, how do I set custom highlights properly?
Doing this (after vim.cmd [[colorscheme material]]) doesn't work:

vim.cmd([[
  hi DiffAdd guibg=#002500 guifg=None gui=None
  hi DiffDelete guibg=#250000 guifg=None gui=None
]])

Why a global option to choose style instead of six different colorschemes?

Hi, this is not a real issue, more of a question on my side. I see you have a g:material_style option to switch between different variations of your colorscheme. Why didn't you release six different colorschemes, e.g. material, material-darker, material-lighter and so on? I know you're not the first one to do so - ayu is the first colorscheme that comes to my mind that is configured the same way - but I'm not a big fan of this solution. Here's why:

  • there's more cognitive work required to remember how each colorscheme chooses its variations (e.g. g:material_style, g:ayucolor and so on; with six different colorschemes, it would just be :colorscheme material_<tab> and you get all the versions;
  • the variations aren't just shade variations - they are completely different colorschemes. They share the same palette, but one of theme is light, one has a blue tone, and so on.

I understand that your solution doesn't pollute the available colorschemes list with many entries - it's one colorscheme instead of six - but I would consider this an acceptable tradeoff.

Please let me know your reasoning behind this, and thanks for the theme, it really looks great.

[feature request] ability to inject custom colors

hi! this is one nice theme!

is there any way, or can it be implemented, to inject the full custom base colors, instead of just the named presets.

the main reason for the request - I like the darker one the most, but I'd like to make it a tad bit darker, more contrasting

Context indent not highlighted for indent-blankline in darker style

When the darker style is selected, the indent line displayed by the indent-blankline plugin is not "highlighted" for the current context.

The IndentBlanklineContextChar highlighting has the same color as the IndentBlanklineChar one. Could you please specify a different color for IndentBlanklineContextChar to make the context more visible?

custom highlight groups does not work

Hello! Really loving this color scheme. I just recently downloaded nvim-tree and I wanted some more stark colors for the signs in my tree. I am using Neovide as my terminal gui but the behavior is the same with just regular terminal nvim.

Here is my setup in my top level .config/nvim/init.lua file, located all the way at the bottom of my config:

-- check if using gui
if vim.api.nvim_eval("exists('g:neovide')") == 1 then
  vim.g.material_style = 'deep ocean'

  -- did setup before calling "colorscheme material" per the instructions
  -- doesn't actually matter if setup comes before or after the command, colors do not apply
  require('material').setup{
    custom_highlights = {
      NvimTreeFolderIcon = 'blue',
      NvimTreeGitNew = 'blue',
      NvimTreeGitDirty = 'red',
      NvimTreeGitStaged = 'LightGreen'
    }
  }

  vim.cmd[[ colorscheme material ]]
  vim.cmd[[ set guifont=Hack\ Nerd\ Font:h12 ]]

  -- put this down here just in case
  -- colors still do not work
  vim.cmd[[ highlight NvimTreeFolderIcon ctermfg=blue guifg=blue ]]
  vim.cmd[[ highlight NvimTreeGitNew ctermfg=blue guifg=blue ]]
  vim.cmd[[ highlight NvimTreeGitDirty ctermfg=red guifg=red ]]
  vim.cmd[[ highlight NvimTreeGitStaged ctermfg=DarkGreen guifg=LightGreen ]]


end

The thing is though, even though the colors are not applied, I can manually apply them in my gui (neovide) by running ":hi NvimTreeGitStaged guibg=LightGreen". So the command itself is valid, but I guess it is not being read by material.nvim? I can confirm the if block is running because I do get the material deep ocean theme, and I get print statements in any part of the if block.

I also have those same highlight groups listed in my .config/nvim/plugin/nvim-tree.lua file, so those highlight groups are getting defined in two different places but still no colors.

This is neovide/neovim with all those configs, before I manually set the highlight group :
Screen Shot 2021-12-21 at 1 00 43 AM

And then this is what it looks like after I manually set the highlight group:
Screen Shot 2021-12-21 at 1 03 03 AM

I even put the code block above my if statement so that I can see the material theme get applied without a gui (just regular terminal nvim) and the behavior is the same. I presume that the theme erases everything in order to apply the beautiful colors but how do I set custom highlight groups, especially for highlight groups related to other plugins that I download?

Thanks!

adjust contrast ratio for light background

For dark backgrounds the color contrast is good, but for light colors its quite bad.

Is there no mathematical model to compute something like this like inverting the gray value to do that?

Can't run the plugin, vim.g is nil

I get the following error when starting neovim with the material colorscheme:

Error detected while processing /home/myhome/.vim/plugged/material.nvim/colors/material.vim: line 3: E5105: Error while calling lua chunk: /home/myhome/.vim/plugged/material.nvim/lua/material.lua:36: attempt to index local 'v' (a nil value)

No idea why, I'm not that well versed in lua.

LSP Diagnostics use the wrong groups

LSP Groups (descriptions and ordering from :h lsp-highlight)

Multiple highlight groups have the wrong for LSP diagnostics.

For example:

  • LspDiagnosticsError should be LspDiagnosticsDefaultError.
  • LspDiagnosticsErrorFloating should be LspDiagnosticsFloatingError.

image

Highlight color for colorcolumn option

I noticed when I set the colorcolumn option it displays that column with the same color as the background:
image

Shouldn't it be showing up with a different color?

Simple way to override applied theme colors [Feature request/Question]

Would it be possible to implement a way to easily replace the theme colors of specific elements? Without using the highlight option directly, and in lua to facilitate
Something like:

				rgb      cterm  string
local color = {'#ffffff', 255, 'color-name'}
material.custom_highlight('ELEMENT', {bg="#fff" fg=color})

Or if something like this already exists, how could I do it?
I'm currently using a hack with autocmd to change colors but I don't feel it's good enough

Wrong comment color in tmux

Hi, im using kitty, tmux and neovim, all with true colors enabled.
But in neovim inside tmux the commets have a strange backgroud, they should be transparent.

Screenshot from 2021-11-26 22-47-17

The problem seems to only appear inside neovim with the comments, everything else and other programs work fine inside tmux.

fix treesitter examples in wiki

They are broken as you can see here.

Quite a shame, since your plugin provides proper highlight groups for all colorschemes and only contestors are navarasu/onedark.nvim (no light color) and adisen99/codeschool.nvim (key words for control flow have bad contrast and color ).

You could maybe elaborate in 2-3 sentences on what color groups one wants to choose for good programming experience.

Palenight visual selection invisible

image
There's a highlight group somewhere for palenight where the foreground is the same as the background...i think...
This isn't a problem with any other options

btw -- thanks for a great theme!

require("material").set() not working

On MacOS using iterm2, zsh, and neovim. I followed the directions in the README to add to my init.lua. It does not allow me to call require("material").set() in my init.lua as listed in the README.

When calling I get the error:

E5113: Error while calling lua chunk: (personal details) : attempt to call field 'set' (a nil value)

I was able to get this working by using the vimscript command:
vim.cmd[[colorscheme material]]
vim.g.material_style = "palenight"

Otherwise great theme. Keep up the great work!

Terminal colors

I am impressive with the extensivness of how many attribute this theme covers. Well done.

I like that the colors of the terminal emulator is set using vim.g.terminal_color_NN, but don't like that the 0-7 and 8-15 are the same colors.

I tried to manually set the colors in my rc, but ecause of the variables are set in async part of the code, it is not yielding the result I was looking for. Would it be possible to allow for a workaround for this? Either:

  1. Update the theme to differentiate between the 0-7 and 8-15.
  2. Add a global flag disabling setting the terminal colors (so the user can set them manually)
  3. Allow for user to provided terminal colors through some setup argument (or global variable).
  4. Move setting the terminal colors in the main thread.

If any of these options seem reasonable to you, I will gladly contribute with a PR.

YAML broken syntax highlighting

Hello! I have bad YAML syntax highlighting (gray key and gray value) with commit 2be93812babaec9311443e22eb96ce0723b0a728 and later.
Thanks!

MatchParen not visible with 'deep ocean' theme

Hi, thanks for this great colorscheme.
I'm using the deep ocean variant and I'm having trouble seeing MatchParen (automatically highlighted matching parenthesis when cursor is on a parenthesis). Would it be possible to add an option to make it at least bold? That makes it a bit more distinguishable from others.

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.