Original author(s) | Ethan Schoonover |
---|---|
Preview release | 1.0.0beta2 / April 16, 2011 |
Repository | |
Written in | XML, Vim script, HTML, Perl |
License | MIT License |
Website | ethanschoonover |
Solarized is a color scheme for code editors and terminal emulators created by Ethan Schoonover. The scheme is available in a light and a dark mode. Packages that implement the color scheme have been published for many major applications, with some including the scheme pre-installed. [1] [2]
Ethan Schoonover—a designer and software developer—began working on Solarized in 2010 after he installed a new code editor and could not find a color scheme he liked. [3] He found the default white-on-black schemes of most applications to be too high in contrast. Even for low-contrast schemes, some colors were more prominent than others. This was an issue for programming, as code editors use syntax highlighting, where color is used to indicate the different parts of the code. [4]
Initially, Schoonover attempted to modify the colors of another scheme called Zenburn, but he was daunted by its implementation in Vim script and did not agree with some of its design decisions. [5] Schoonover took six months in order to research and create Solarized, with the goal of applying "design rigor". [5] Schoonover published Solarized in April 2011 on GitHub. [4]
Schoonover has refused offers of donations to the project, preferring to not be beholden to others regarding changes, especially since aspects of programming environments such as color schemes can be contentious. [3] Schoonover has considered releasing a revised set of color schemes as "Solarized 2" in order to avoid legacy support issues based on the original Solarized. [5]
Schoonover used Vim as his editor inside of a terminal, so he had to be conscious of its color limitations and decided to limit the scheme to 16 colors. He also worked on both a light and dark color scheme early on, with the goal of making them opposites of each other and cohesive. Due to Schoonover's prior experience with photography and color management, Solarized was designed in the CIELAB color space, with sRGB hex values being generated from canonical CIELAB values. Initially, Schoonover had a goal of creating a build system that would output themes for many different applications, but it proved difficult due to undocumented and complicated formats. [5]
Solarized reduces brightness contrast but, unlike many low contrast colorschemes, retains contrasting hues (based on colorwheel relations) for syntax highlighting readability.
– Ethan Schoonover [1]
Schoonover first worked on Ruby and Haskell syntax highlighting to make sure their overall "typographic color" looked consistent. Schoonover had trouble getting the shade of red correct. [5] The use of the colors yellow and blue were personal choices for Schoonover: yellow associated with "pleasant sounds, shapes, and pieces of music" due to minor synesthesia, and blue representing how he imagines drowning in the ocean to be like because of his thalassophobia. Schoonover expressed concern that ports might use an uneven mix of colors or too many colors. [3] The light and dark schemes have symmetric CIELAB lightness differences in their base colors, preserving perceived contrast. The 16-color palette was also designed to scale down to multiple five-color palettes for design work. [6]
Color | CIELAB D65 | sRGB | xterm | Terminal | Usage | ||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Name | Swatch | L* | a* | b* | Hex | R | G | B | Code | Name | |
Base03 | 15 | −12 | −12 | #002b36 | 0 | 43 | 54 | 234 | brblack | background tones (dark theme) | |
Base02 | 20 | −12 | −12 | #073642 | 7 | 54 | 66 | 235 | black | ||
Base01 | 45 | −07 | −07 | #586e75 | 88 | 110 | 117 | 240 | brgreen | content tones | |
Base00 | 50 | −07 | −07 | #657b83 | 101 | 123 | 131 | 241 | bryellow | ||
Base0 | 60 | −06 | −03 | #839496 | 131 | 148 | 150 | 244 | brblue | ||
Base1 | 65 | −05 | −02 | #93a1a1 | 147 | 161 | 161 | 245 | brcyan | ||
Base2 | 92 | −00 | 10 | #eee8d5 | 238 | 232 | 213 | 254 | white | background tones (light theme) | |
Base3 | 97 | 00 | 10 | #fdf6e3 | 253 | 246 | 227 | 230 | brwhite | ||
Yellow | 60 | 10 | 65 | #b58900 | 181 | 137 | 0 | 136 | yellow | accent tones | |
Orange | 50 | 50 | 55 | #cb4b16 | 203 | 75 | 22 | 166 | brred | ||
Red | 50 | 65 | 45 | #dc322f | 220 | 50 | 47 | 160 | red | ||
Magenta | 50 | 65 | −05 | #d33682 | 211 | 54 | 130 | 125 | magenta | ||
Violet | 50 | 15 | −45 | #6c71c4 | 108 | 113 | 196 | 61 | brmagenta | ||
Blue | 55 | −10 | −45 | #268bd2 | 38 | 139 | 210 | 33 | blue | ||
Cyan | 60 | −35 | −05 | #2aa198 | 42 | 161 | 152 | 37 | cyan | ||
Green | 60 | −20 | 65 | #859900 | 133 | 153 | 0 | 64 | green |
Selenized, an alternate revision of the Solarized palette made by Jan Warchol, is intended to improve readability and better distinguish close shades (like green–yellow and blue–violet). [9] OKSolar, by Zack Voase, is intended to provide more uniform perceptual brightness by using colors defined in the OKLab color space instead of CIELAB. [10]
Upon release on GitHub, Solarized reached the top percentiles of projects for that week. [3] Joel Falconer of The Next Web recommended Solarized, writing: "I doubt there are many, if any, terminal color schemes that have received the amount of thought and attention that Schoonover's Solarized has." [1] Writing for Tidbits , Steven Aquino tested Solarized Light along with the Cousine font and reported that "as a visually impaired person, I find the combination to be extremely comfortable for my eyes. ... I'm experiencing considerably less eye strain than normal." [2]
The RGB color model is an additive color model in which the red, green and blue primary colors of light are added together in various ways to reproduce a broad array of colors. The name of the model comes from the initials of the three additive primary colors, red, green, and blue.
Vim is a free and open-source, screen-based text editor program. It is an improved clone of Bill Joy's vi. Vim's author, Bram Moolenaar, derived Vim from a port of the Stevie editor for Amiga and released a version to the public in 1991. Vim is designed for use both from a command-line interface and as a standalone application in a graphical user interface. Since its release for the Amiga, cross-platform development has made it available on many other systems. In 2018, it was voted the most popular editor amongst Linux Journal readers; in 2015 the Stack Overflow developer survey found it to be the third most popular text editor, and in 2019 the fifth most popular development environment.
ANSI escape sequences are a standard for in-band signaling to control cursor location, color, font styling, and other options on video text terminals and terminal emulators. Certain sequences of bytes, most starting with an ASCII escape character and a bracket character, are embedded into text. The terminal interprets these sequences as commands, rather than text to display verbatim.
Syntax highlighting is a feature of text editors that is used for programming, scripting, or markup languages, such as HTML. The feature displays text, especially source code, in different colours and fonts according to the category of terms. This feature facilitates writing in a structured language such as a programming language or a markup language as both structures and syntax errors are visually distinct. This feature is also employed in many programming related contexts, either in the form of colorful books or online websites to make understanding code snippets easier for readers. Highlighting does not affect the meaning of the text itself; it is intended only for human readers.
Web colors are colors used in displaying web pages on the World Wide Web; they can be described by way of three methods: a color may be specified as an RGB triplet, in hexadecimal format or according to its common English name in some cases. A color tool or other graphics software is often used to generate color values. In some uses, hexadecimal color codes are specified with notation using a leading number sign (#). A color is specified according to the intensity of its red, green and blue components, each represented by eight bits. Thus, there are 24 bits used to specify a web color within the sRGB gamut, and 16,777,216 colors that may be so specified.
The KDE Advanced Text Editor, or Kate, is a source code editor developed by the KDE free software community. It has been a part of KDE Software Compilation since version 2.2, which was first released in 2001. Intended for software developers, it features syntax highlighting, code folding, customizable layouts, multiple cursors and selections, regular expression support, and extensibility via plugins. The text editor's mascot is Kate the Cyber Woodpecker.
A source-code editor is a text editor program designed specifically for editing source code of computer programs. It may be a standalone application or it may be built into an integrated development environment (IDE).
This article provides basic comparisons for notable text editors. More feature details for text editors are available from the Category of text editor features and from the individual products' articles. This article may not be up-to-date or necessarily all-inclusive.
A color model is an abstract mathematical model describing the way colors can be represented as tuples of numbers, typically as three or four values or color components. When this model is associated with a precise description of how the components are to be interpreted, taking account of visual perception, the resulting set of colors is called "color space."
GNOME Terminal is a terminal emulator for the GNOME desktop environment written by Havoc Pennington and others. Terminal emulators allow users to access a UNIX shell while remaining on their graphical desktop.
Markdown is a lightweight markup language for creating formatted text using a plain-text editor. John Gruber and Aaron Swartz created Markdown in 2004 as a markup language that is intended to be easy to read in its source code form. Markdown is widely used for blogging and instant messaging, and also used elsewhere in online forums, collaborative software, documentation pages, and readme files.
In color theory, a color scheme is a combination of 2 or more colors used in aesthetic or practical design. Aesthetic color schemes are used to create style and appeal. Colors that create a harmonious feeling when viewed together are often used together in aesthetic color schemes. Practical color schemes are used to inhibit or facilitate color tasks, such as camouflage color schemes or high visibility color schemes. Qualitative and quantitative color schemes are used to encode unordered categorical data and ordered data, respectively. Color schemes are often described in terms of logical combinations of colors on a color wheel or within a color space.
Geany is a free and open-source lightweight GUI text editor using Scintilla and GTK, including basic IDE features. It is designed to have short load times, with limited dependency on separate packages or external libraries on Linux. It has been ported to a wide range of operating systems, such as BSD, Linux, macOS, Solaris and Windows. The Windows port lacks an embedded terminal window; also missing from the Windows version are the external development tools present under Unix, unless installed separately by the user. Among the supported programming languages and markup languages are C, C++, C#, Java, JavaScript, PHP, HTML, LaTeX, CSS, Python, Perl, Ruby, Pascal, Haskell, Erlang, Vala and many others.
KWrite is a lightweight text editor developed by the KDE free software community. Since K Desktop Environment 3, Kwrite has been based on the Kate text editor and the KParts framework, allowing it to use many of Kate's features.
Sublime Text is a shareware text and source code editor available for Windows, macOS, and Linux. It natively supports many programming languages and markup languages. Users can customize it with themes and expand its functionality with plugins, typically community-built and maintained under free-software licenses. To facilitate plugins, Sublime Text features a Python API. The editor utilizes minimal interface and contains features for programmers including configurable syntax highlighting, code folding, search-and-replace supporting regular-expressions, terminal output window, and more. It is proprietary software, but a free evaluation version is available.
Spyder is an open-source cross-platform integrated development environment (IDE) for scientific programming in the Python language. Spyder integrates with a number of prominent packages in the scientific Python stack, including NumPy, SciPy, Matplotlib, pandas, IPython, SymPy and Cython, as well as other open-source software. It is released under the MIT license.
A color appearance model (CAM) is a mathematical model that seeks to describe the perceptual aspects of human color vision, i.e. viewing conditions under which the appearance of a color does not tally with the corresponding physical measurement of the stimulus source.
HCL (Hue-Chroma-Luminance) or LCh refers to any of the many cylindrical color space models that are designed to accord with human perception of color with the three parameters. Lch has been adopted by information visualization practitioners to present data without the bias implicit in using varying saturation. They are, in general, designed to have characteristics of both cylindrical translations of the RGB color space, such as HSL and HSV, and the L*a*b* color space. Some conflicting definitions of the terms are:
Dracula is a color scheme for a large collection of desktop apps and website, with a focus on code editors and terminal emulators, created by Zeno Rocha. The scheme is exclusively available in dark mode. Packages that implement the color scheme have been published for many major applications, such as Visual Studio Code, Sublime Text, Atom, JetBrains IDEs, and 218 other applications.