Skip to content

Commit

Permalink
feat(theme): add noctis-lilac theme.
Browse files Browse the repository at this point in the history
  • Loading branch information
jaywcjlove committed Dec 7, 2022
1 parent fea984f commit f30c552
Show file tree
Hide file tree
Showing 11 changed files with 251 additions and 1 deletion.
1 change: 1 addition & 0 deletions core/README.md
Expand Up @@ -68,6 +68,7 @@ npm install @uiw/react-codemirror --save
| `@uiw/codemirror-theme-github` | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-github.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-github) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-theme-github.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-theme-github) | [`#preview`](https://uiwjs.github.io/react-codemirror/#/theme/data/github) |
| `@uiw/codemirror-theme-gruvbox-dark` | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-gruvbox-dark.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-gruvbox-dark) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-theme-gruvbox-dark.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-theme-gruvbox-dark) | [`#preview`](https://uiwjs.github.io/react-codemirror/#/theme/data/gruvbox/dark) |
| `@uiw/codemirror-theme-material` | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-material.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-material) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-theme-material.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-theme-material) | [`#preview`](https://uiwjs.github.io/react-codemirror/#/theme/data/material) |
| `@uiw/codemirror-theme-noctis-lilac` | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-noctis-lilac.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-noctis-lilac) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-theme-noctis-lilac.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-theme-noctis-lilac) | [`#preview`](https://uiwjs.github.io/react-codemirror/#/theme/data/noctis-lilac) |
| `@uiw/codemirror-theme-nord` | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-nord.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-nord) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-theme-nord.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-theme-nord) | [`#preview`](https://uiwjs.github.io/react-codemirror/#/theme/data/nord) |
| `@uiw/codemirror-theme-okaidia` | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-okaidia.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-okaidia) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-theme-okaidia.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-theme-okaidia) | [`#preview`](https://uiwjs.github.io/react-codemirror/#/theme/data/okaidia) |
| `@uiw/codemirror-theme-solarized` | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-solarized.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-solarized) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-theme-solarized.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-theme-solarized) | [`#preview`](https://uiwjs.github.io/react-codemirror/#/theme/data/solarized/dark) |
Expand Down
1 change: 1 addition & 0 deletions themes/all/package.json
Expand Up @@ -33,6 +33,7 @@
"@uiw/codemirror-theme-github": "4.18.0",
"@uiw/codemirror-theme-gruvbox-dark": "4.18.0",
"@uiw/codemirror-theme-material": "4.18.0",
"@uiw/codemirror-theme-noctis-lilac": "4.18.0",
"@uiw/codemirror-theme-nord": "4.18.0",
"@uiw/codemirror-theme-okaidia": "4.18.0",
"@uiw/codemirror-theme-solarized": "4.18.0",
Expand Down
1 change: 1 addition & 0 deletions themes/all/src/index.ts
Expand Up @@ -10,6 +10,7 @@ export * from '@uiw/codemirror-theme-eclipse';
export * from '@uiw/codemirror-theme-github';
export * from '@uiw/codemirror-theme-gruvbox-dark';
export * from '@uiw/codemirror-theme-material';
export * from '@uiw/codemirror-theme-noctis-lilac';
export * from '@uiw/codemirror-theme-nord';
export * from '@uiw/codemirror-theme-okaidia';
export * from '@uiw/codemirror-theme-solarized';
Expand Down
95 changes: 95 additions & 0 deletions themes/noctis-lilac/README.md
@@ -0,0 +1,95 @@
<!--rehype:ignore:start-->

# NoctisLilac Theme

<!--rehype:ignore:end-->

[![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-noctis-lilac.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-noctis-lilac)

This package implements the [nord theme](https://www.nordtheme.com/) for the CodeMirror code editor.

<a href="https://uiwjs.github.io/react-codemirror/#/theme/data/noctis-lilac">
<img width="436" alt="codemirror-theme-nord" src="https://user-images.githubusercontent.com/1680273/206086882-b3525159-d987-4d7f-bad3-fdf3d4dbd06f.png">
</a>

## Install

```bash
npm install @uiw/codemirror-theme-noctis-lilac --save
```

```jsx
import { noctisLilac, noctisLilacInit } from '@uiw/codemirror-theme-noctis-lilac';

<CodeMirror theme={noctisLilac} />
<CodeMirror
theme={noctisLilacInit({
settings: {
caret: '#c6c6c6',
fontFamily: 'monospace',
}
})}
/>
```

## API

```tsx
import { CreateThemeOptions } from '@uiw/codemirror-themes';
export declare const noctisLilacInit: (options?: CreateThemeOptions) => import('@codemirror/state').Extension;
export declare const noctisLilac: import('@codemirror/state').Extension;
```

## Usage

```jsx
import CodeMirror from '@uiw/react-codemirror';
import { noctisLilac } from '@uiw/codemirror-theme-noctis-lilac';
import { javascript } from '@codemirror/lang-javascript';

function App() {
return (
<CodeMirror
value="console.log('hello world!');"
height="200px"
theme={noctisLilac}
extensions={[javascript({ jsx: true })]}
onChange={(value, viewUpdate) => {
console.log('value:', value);
}}
/>
);
}
export default App;
```

```js
import { EditorView } from '@codemirror/view';
import { EditorState } from '@codemirror/state';
import { javascript } from '@codemirror/lang-javascript';
import { noctisLilac } from '@uiw/codemirror-theme-noctis-lilac';

const state = EditorState.create({
doc: 'my source code',
extensions: [noctisLilac, javascript({ jsx: true })],
});

const view = new EditorView({
parent: document.querySelector('#editor'),
state,
});
```

## Contributors

As always, thanks to our amazing contributors!

<a href="https://github.com/uiwjs/react-codemirror/graphs/contributors">
<img src="https://uiwjs.github.io/react-codemirror/CONTRIBUTORS.svg" />
</a>

Made with [github-action-contributors](https://github.com/jaywcjlove/github-action-contributors).

## License

Licensed under the MIT License.
41 changes: 41 additions & 0 deletions themes/noctis-lilac/package.json
@@ -0,0 +1,41 @@
{
"name": "@uiw/codemirror-theme-noctis-lilac",
"version": "4.18.0",
"description": "Theme noctis-lilac for CodeMirror.",
"homepage": "https://uiwjs.github.io/react-codemirror/#/theme/data/noctis-lilac",
"author": "kenny wong <wowohoo@qq.com>",
"license": "MIT",
"main": "./cjs/index.js",
"module": "./esm/index.js",
"scripts": {
"watch": "tsbb watch",
"build": "tsbb build"
},
"repository": {
"type": "git",
"url": "https://github.com/uiwjs/react-codemirror.git"
},
"files": [
"src",
"esm",
"cjs"
],
"dependencies": {
"@uiw/codemirror-themes": "4.18.0"
},
"keywords": [
"codemirror",
"codemirror6",
"theme",
"noctis-lilac",
"syntax",
"ide",
"code"
],
"jest": {
"coverageReporters": [
"lcov",
"json-summary"
]
}
}
86 changes: 86 additions & 0 deletions themes/noctis-lilac/src/index.ts
@@ -0,0 +1,86 @@
import { tags as t } from '@lezer/highlight';
import { createTheme, CreateThemeOptions } from '@uiw/codemirror-themes';

export const noctisLilacInit = (options?: CreateThemeOptions) => {
const { theme = 'light', settings = {}, styles = [] } = options || {};
return createTheme({
theme: theme,
settings: {
background: '#f2f1f8',
foreground: '#0c006b',
caret: '#5c49e9',
selection: '#d5d1f2',
selectionMatch: '#d5d1f2',
gutterBackground: '#f2f1f8',
gutterForeground: '#0c006b70',
lineHighlight: '#e1def3',
...settings,
},
styles: [
{
tag: t.comment,
color: '#9995b7',
},
{
tag: t.keyword,
color: '#ff5792',
fontWeight: 'bold',
},
{
tag: [t.definitionKeyword, t.modifier],
color: '#ff5792',
},
{
tag: [t.className, t.tagName, t.definition(t.typeName)],
color: '#0094f0',
},
{
tag: [t.number, t.bool, t.null, t.special(t.brace)],
color: '#5842ff',
},
{
tag: [t.definition(t.propertyName), t.function(t.variableName)],
color: '#0095a8',
},
{
tag: t.typeName,
color: '#b3694d',
},
{
tag: [t.propertyName, t.variableName],
color: '#fa8900',
},
{
tag: t.operator,
color: '#ff5792',
},
{
tag: t.self,
color: '#e64100',
},
{
tag: [t.string, t.regexp],
color: '#00b368',
},
{
tag: [t.paren, t.bracket],
color: '#0431fa',
},
{
tag: t.labelName,
color: '#00bdd6',
},
{
tag: t.attributeName,
color: '#e64100',
},
{
tag: t.angleBracket,
color: '#9995b7',
},
...styles,
],
});
};

export const noctisLilac = noctisLilacInit();
9 changes: 9 additions & 0 deletions themes/noctis-lilac/tsconfig.json
@@ -0,0 +1,9 @@
{
"extends": "../../tsconfig",
"include": ["src"],
"compilerOptions": {
"outDir": "./cjs",
"baseUrl": ".",
"noEmit": false
}
}
6 changes: 6 additions & 0 deletions themes/theme/README.md
Expand Up @@ -198,6 +198,12 @@ export default App;
<img width="436" alt="codemirror-theme-material" src="https://user-images.githubusercontent.com/1680273/205537793-79f9c99c-831a-4ce3-8189-78b42896656f.png">
</a>

**noctis-lilac**

<a href="https://uiwjs.github.io/react-codemirror/#/theme/data/noctis-lilac">
<img width="436" alt="codemirror-theme-material" src="https://user-images.githubusercontent.com/1680273/206086882-b3525159-d987-4d7f-bad3-fdf3d4dbd06f.png">
</a>

**nord**

<a href="https://uiwjs.github.io/react-codemirror/#/theme/data/nord">
Expand Down
1 change: 1 addition & 0 deletions www/package.json
Expand Up @@ -55,6 +55,7 @@
"@uiw/codemirror-theme-github": "4.18.0",
"@uiw/codemirror-theme-gruvbox-dark": "4.18.0",
"@uiw/codemirror-theme-material": "4.18.0",
"@uiw/codemirror-theme-noctis-lilac": "4.18.0",
"@uiw/codemirror-theme-nord": "4.18.0",
"@uiw/codemirror-theme-okaidia": "4.18.0",
"@uiw/codemirror-theme-solarized": "4.18.0",
Expand Down
7 changes: 6 additions & 1 deletion www/src/pages/theme/home/index.tsx
Expand Up @@ -62,6 +62,11 @@ const Counter = () => {
return <span>{value}</span>;
};`;

const CodeEditor = styled(CodeMirror)`
border-radius: 0.375rem;
overflow: hidden;
`;

export function ThemesHome() {
return (
<Fragment>
Expand All @@ -74,7 +79,7 @@ export function ThemesHome() {
<Link key={idx} to={`/theme/data/${_name}${_theme ? `/${_theme}` : ''}`}>
<ThemeCard>
<Title>{toTitleCase(name)}</Title>
<CodeMirror
<CodeEditor
value={codeString}
height="165px"
theme={themeData[name as keyof typeof themeData]}
Expand Down
4 changes: 4 additions & 0 deletions www/src/pages/theme/themes/Datas.ts
Expand Up @@ -8,6 +8,7 @@ import duotoneMd from '@uiw/codemirror-theme-duotone/README.md';
import githubMd from '@uiw/codemirror-theme-github/README.md';
import gruvboxDarkMd from '@uiw/codemirror-theme-gruvbox-dark/README.md';
import materialMd from '@uiw/codemirror-theme-material/README.md';
import noctisLilacMd from '@uiw/codemirror-theme-noctis-lilac/README.md';
import nordMd from '@uiw/codemirror-theme-nord/README.md';
import okaidiaMd from '@uiw/codemirror-theme-okaidia/README.md';
import solarizedMd from '@uiw/codemirror-theme-solarized/README.md';
Expand All @@ -26,6 +27,7 @@ import { darcula } from '@uiw/codemirror-theme-darcula';
import { eclipse } from '@uiw/codemirror-theme-eclipse';
import { bespin } from '@uiw/codemirror-theme-bespin';
import { material } from '@uiw/codemirror-theme-material';
import { noctisLilac } from '@uiw/codemirror-theme-noctis-lilac';
import { vscodeDark } from '@uiw/codemirror-theme-vscode';
import { duotoneLight, duotoneDark } from '@uiw/codemirror-theme-duotone';
import { githubLight, githubDark } from '@uiw/codemirror-theme-github';
Expand All @@ -52,6 +54,7 @@ export const mdSource = {
gruvboxDark: gruvboxDarkMd.source,
gruvboxLight: gruvboxDarkMd.source,
material: materialMd.source,
noctisLilac: noctisLilacMd.source,
nord: nordMd.source,
okaidia: okaidiaMd.source,
solarizedLight: solarizedMd.source,
Expand All @@ -78,6 +81,7 @@ export const themeData = {
gruvboxDark,
gruvboxLight,
material,
noctisLilac,
nord,
okaidia,
solarizedLight,
Expand Down

0 comments on commit f30c552

Please sign in to comment.