Initial public release
This commit is contained in:
@@ -0,0 +1,197 @@
|
||||
import type { Theme } from '@/types/theme';
|
||||
|
||||
export const flexokiDarkTheme: Theme = {
|
||||
metadata: {
|
||||
id: 'flexoki-dark',
|
||||
name: 'Flexoki Dark',
|
||||
description: 'An inky color scheme for prose and code - dark variant',
|
||||
author: 'Steph Ango',
|
||||
version: '1.0.0',
|
||||
variant: 'dark',
|
||||
tags: ['dark', 'warm', 'natural', 'ink']
|
||||
},
|
||||
|
||||
colors: {
|
||||
|
||||
primary: {
|
||||
base: '#EC8B49',
|
||||
hover: '#DA702C',
|
||||
active: '#F9AE77',
|
||||
foreground: '#100F0F',
|
||||
muted: '#EC8B4980',
|
||||
emphasis: '#F9AE77'
|
||||
},
|
||||
|
||||
surface: {
|
||||
background: '#100F0F',
|
||||
foreground: '#CECDC3',
|
||||
muted: '#1C1B1A',
|
||||
mutedForeground: '#878580',
|
||||
elevated: '#282726',
|
||||
elevatedForeground: '#CECDC3',
|
||||
overlay: '#00000080',
|
||||
subtle: '#343331'
|
||||
},
|
||||
|
||||
interactive: {
|
||||
border: '#343331',
|
||||
borderHover: '#403E3C',
|
||||
borderFocus: '#EC8B49',
|
||||
selection: '#CECDC330',
|
||||
selectionForeground: '#CECDC3',
|
||||
focus: '#EC8B49',
|
||||
focusRing: '#EC8B4950',
|
||||
cursor: '#CECDC3',
|
||||
hover: '#343331',
|
||||
active: '#403E3C'
|
||||
},
|
||||
|
||||
status: {
|
||||
error: '#D14D41',
|
||||
errorForeground: '#100F0F',
|
||||
errorBackground: '#AF302920',
|
||||
errorBorder: '#AF302950',
|
||||
|
||||
warning: '#DA702C',
|
||||
warningForeground: '#100F0F',
|
||||
warningBackground: '#BC521520',
|
||||
warningBorder: '#BC521550',
|
||||
|
||||
success: '#A0AF54',
|
||||
successForeground: '#100F0F',
|
||||
successBackground: '#66800B20',
|
||||
successBorder: '#66800B50',
|
||||
|
||||
info: '#4385BE',
|
||||
infoForeground: '#100F0F',
|
||||
infoBackground: '#205EA620',
|
||||
infoBorder: '#205EA650'
|
||||
},
|
||||
|
||||
syntax: {
|
||||
base: {
|
||||
background: '#1C1B1A',
|
||||
foreground: '#CECDC3',
|
||||
comment: '#878580',
|
||||
keyword: '#4385BE',
|
||||
string: '#3AA99F',
|
||||
number: '#8B7EC8',
|
||||
function: '#DA702C',
|
||||
variable: '#CECDC3',
|
||||
type: '#D0A215',
|
||||
operator: '#D14D41'
|
||||
},
|
||||
|
||||
tokens: {
|
||||
commentDoc: '#575653',
|
||||
stringEscape: '#CECDC3',
|
||||
keywordImport: '#D14D41',
|
||||
storageModifier: '#4385BE',
|
||||
functionCall: '#DA702C',
|
||||
method: '#879A39',
|
||||
variableProperty: '#4385BE',
|
||||
variableOther: '#879A39',
|
||||
variableGlobal: '#CE5D97',
|
||||
variableLocal: '#282726',
|
||||
parameter: '#CECDC3',
|
||||
constant: '#CECDC3',
|
||||
class: '#DA702C',
|
||||
className: '#DA702C',
|
||||
interface: '#D0A215',
|
||||
struct: '#DA702C',
|
||||
enum: '#DA702C',
|
||||
typeParameter: '#DA702C',
|
||||
namespace: '#D0A215',
|
||||
module: '#D14D41',
|
||||
tag: '#4385BE',
|
||||
jsxTag: '#CE5D97',
|
||||
tagAttribute: '#D0A215',
|
||||
tagAttributeValue: '#3AA99F',
|
||||
boolean: '#D0A215',
|
||||
decorator: '#D0A215',
|
||||
label: '#CE5D97',
|
||||
punctuation: '#878580',
|
||||
macro: '#4385BE',
|
||||
preprocessor: '#CE5D97',
|
||||
regex: '#3AA99F',
|
||||
url: '#4385BE',
|
||||
key: '#DA702C',
|
||||
exception: '#CE5D97'
|
||||
},
|
||||
|
||||
highlights: {
|
||||
diffAdded: '#879A39',
|
||||
diffAddedBackground: '#66800B20',
|
||||
diffRemoved: '#D14D41',
|
||||
diffRemovedBackground: '#AF302920',
|
||||
diffModified: '#4385BE',
|
||||
diffModifiedBackground: '#205EA620',
|
||||
lineNumber: '#403E3C',
|
||||
lineNumberActive: '#CECDC3'
|
||||
}
|
||||
},
|
||||
|
||||
markdown: {
|
||||
heading1: '#D0A215',
|
||||
heading2: '#DA702C',
|
||||
heading3: '#4385BE',
|
||||
heading4: '#CECDC3',
|
||||
link: '#4385BE',
|
||||
linkHover: '#205EA6',
|
||||
inlineCode: '#A0AF54',
|
||||
inlineCodeBackground: '#1C1B1A',
|
||||
blockquote: '#878580',
|
||||
blockquoteBorder: '#343331',
|
||||
listMarker: '#D0A21599'
|
||||
},
|
||||
|
||||
chat: {
|
||||
userMessage: '#CECDC3',
|
||||
userMessageBackground: '#282726',
|
||||
assistantMessage: '#CECDC3',
|
||||
assistantMessageBackground: '#100F0F',
|
||||
timestamp: '#878580',
|
||||
divider: '#343331'
|
||||
},
|
||||
|
||||
tools: {
|
||||
background: '#1C1B1A50',
|
||||
border: '#34333180',
|
||||
headerHover: '#34333150',
|
||||
icon: '#878580',
|
||||
title: '#CECDC3',
|
||||
description: '#878580',
|
||||
|
||||
edit: {
|
||||
added: '#879A39',
|
||||
addedBackground: '#66800B25',
|
||||
removed: '#D14D41',
|
||||
removedBackground: '#AF302925',
|
||||
lineNumber: '#403E3C'
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
config: {
|
||||
fonts: {
|
||||
sans: '"IBM Plex Mono", monospace',
|
||||
mono: '"IBM Plex Mono", monospace',
|
||||
heading: '"IBM Plex Mono", monospace'
|
||||
},
|
||||
|
||||
radius: {
|
||||
none: '0',
|
||||
sm: '0.125rem',
|
||||
md: '0.375rem',
|
||||
lg: '0.5rem',
|
||||
xl: '0.75rem',
|
||||
full: '9999px'
|
||||
},
|
||||
|
||||
transitions: {
|
||||
fast: '150ms ease',
|
||||
normal: '250ms ease',
|
||||
slow: '350ms ease'
|
||||
}
|
||||
}
|
||||
};
|
||||
@@ -0,0 +1,197 @@
|
||||
import type { Theme } from '@/types/theme';
|
||||
|
||||
export const flexokiLightTheme: Theme = {
|
||||
metadata: {
|
||||
id: 'flexoki-light',
|
||||
name: 'Flexoki Light',
|
||||
description: 'An inky color scheme for prose and code - light variant',
|
||||
author: 'Steph Ango',
|
||||
version: '1.0.0',
|
||||
variant: 'light',
|
||||
tags: ['light', 'warm', 'natural', 'paper']
|
||||
},
|
||||
|
||||
colors: {
|
||||
|
||||
primary: {
|
||||
base: '#EC8B49',
|
||||
hover: '#F9AE77',
|
||||
active: '#DA702C',
|
||||
foreground: '#FFFCF0',
|
||||
muted: '#EC8B4980',
|
||||
emphasis: '#F9AE77'
|
||||
},
|
||||
|
||||
surface: {
|
||||
background: '#FFFCF0',
|
||||
foreground: '#100F0F',
|
||||
muted: '#F2F0E5',
|
||||
mutedForeground: '#6F6E69',
|
||||
elevated: '#E6E4D9',
|
||||
elevatedForeground: '#100F0F',
|
||||
overlay: '#100F0F20',
|
||||
subtle: '#DAD8CE'
|
||||
},
|
||||
|
||||
interactive: {
|
||||
border: '#DAD8CE',
|
||||
borderHover: '#CECDC3',
|
||||
borderFocus: '#EC8B49',
|
||||
selection: '#100F0F44',
|
||||
selectionForeground: '#100F0F',
|
||||
focus: '#EC8B49',
|
||||
focusRing: '#EC8B4940',
|
||||
cursor: '#100F0F',
|
||||
hover: '#DAD8CE',
|
||||
active: '#CECDC3'
|
||||
},
|
||||
|
||||
status: {
|
||||
error: '#AF3029',
|
||||
errorForeground: '#FFFCF0',
|
||||
errorBackground: '#D14D4120',
|
||||
errorBorder: '#D14D4150',
|
||||
|
||||
warning: '#BC5215',
|
||||
warningForeground: '#FFFCF0',
|
||||
warningBackground: '#DA702C20',
|
||||
warningBorder: '#DA702C50',
|
||||
|
||||
success: '#66800B',
|
||||
successForeground: '#FFFCF0',
|
||||
successBackground: '#879A3920',
|
||||
successBorder: '#879A3950',
|
||||
|
||||
info: '#205EA6',
|
||||
infoForeground: '#FFFCF0',
|
||||
infoBackground: '#4385BE20',
|
||||
infoBorder: '#4385BE50'
|
||||
},
|
||||
|
||||
syntax: {
|
||||
base: {
|
||||
background: '#F2F0E5',
|
||||
foreground: '#100F0F',
|
||||
comment: '#6F6E69',
|
||||
keyword: '#205EA6',
|
||||
string: '#24837B',
|
||||
number: '#5E409D',
|
||||
function: '#BC5215',
|
||||
variable: '#100F0F',
|
||||
type: '#AD8301',
|
||||
operator: '#AF3029'
|
||||
},
|
||||
|
||||
tokens: {
|
||||
commentDoc: '#B7B5AC',
|
||||
stringEscape: '#100F0F',
|
||||
keywordImport: '#AF3029',
|
||||
storageModifier: '#205EA6',
|
||||
functionCall: '#BC5215',
|
||||
method: '#66800B',
|
||||
variableProperty: '#205EA6',
|
||||
variableOther: '#66800B',
|
||||
variableGlobal: '#A02F6F',
|
||||
variableLocal: '#E6E4D9',
|
||||
parameter: '#100F0F',
|
||||
constant: '#100F0F',
|
||||
class: '#BC5215',
|
||||
className: '#BC5215',
|
||||
interface: '#AD8301',
|
||||
struct: '#BC5215',
|
||||
enum: '#BC5215',
|
||||
typeParameter: '#BC5215',
|
||||
namespace: '#AD8301',
|
||||
module: '#AF3029',
|
||||
tag: '#205EA6',
|
||||
jsxTag: '#A02F6F',
|
||||
tagAttribute: '#AD8301',
|
||||
tagAttributeValue: '#24837B',
|
||||
boolean: '#AD8301',
|
||||
decorator: '#AD8301',
|
||||
label: '#A02F6F',
|
||||
punctuation: '#6F6E69',
|
||||
macro: '#205EA6',
|
||||
preprocessor: '#A02F6F',
|
||||
regex: '#24837B',
|
||||
url: '#205EA6',
|
||||
key: '#BC5215',
|
||||
exception: '#A02F6F'
|
||||
},
|
||||
|
||||
highlights: {
|
||||
diffAdded: '#66800B',
|
||||
diffAddedBackground: '#879A3920',
|
||||
diffRemoved: '#AF3029',
|
||||
diffRemovedBackground: '#D14D4120',
|
||||
diffModified: '#205EA6',
|
||||
diffModifiedBackground: '#4385BE20',
|
||||
lineNumber: '#CECDC3',
|
||||
lineNumberActive: '#100F0F'
|
||||
}
|
||||
},
|
||||
|
||||
markdown: {
|
||||
heading1: '#AD8301',
|
||||
heading2: '#BC5215',
|
||||
heading3: '#205EA6',
|
||||
heading4: '#100F0F',
|
||||
link: '#205EA6',
|
||||
linkHover: '#4385BE',
|
||||
inlineCode: '#24837B',
|
||||
inlineCodeBackground: '#F2F0E5',
|
||||
blockquote: '#6F6E69',
|
||||
blockquoteBorder: '#DAD8CE',
|
||||
listMarker: '#AD830199'
|
||||
},
|
||||
|
||||
chat: {
|
||||
userMessage: '#100F0F',
|
||||
userMessageBackground: '#F2F0E5',
|
||||
assistantMessage: '#100F0F',
|
||||
assistantMessageBackground: '#FFFCF0',
|
||||
timestamp: '#6F6E69',
|
||||
divider: '#DAD8CE'
|
||||
},
|
||||
|
||||
tools: {
|
||||
background: '#F2F0E550',
|
||||
border: '#DAD8CE80',
|
||||
headerHover: '#DAD8CE',
|
||||
icon: '#6F6E69',
|
||||
title: '#100F0F',
|
||||
description: '#6F6E69',
|
||||
|
||||
edit: {
|
||||
added: '#66800B',
|
||||
addedBackground: '#66800B25',
|
||||
removed: '#AF3029',
|
||||
removedBackground: '#AF302925',
|
||||
lineNumber: '#CECDC3'
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
config: {
|
||||
fonts: {
|
||||
sans: '"IBM Plex Mono", monospace',
|
||||
mono: '"IBM Plex Mono", monospace',
|
||||
heading: '"IBM Plex Mono", monospace'
|
||||
},
|
||||
|
||||
radius: {
|
||||
none: '0',
|
||||
sm: '0.125rem',
|
||||
md: '0.375rem',
|
||||
lg: '0.5rem',
|
||||
xl: '0.75rem',
|
||||
full: '9999px'
|
||||
},
|
||||
|
||||
transitions: {
|
||||
fast: '150ms ease',
|
||||
normal: '250ms ease',
|
||||
slow: '350ms ease'
|
||||
}
|
||||
}
|
||||
};
|
||||
@@ -0,0 +1,21 @@
|
||||
import type { Theme } from '@/types/theme';
|
||||
import { flexokiLightTheme } from './flexoki-light';
|
||||
import { flexokiDarkTheme } from './flexoki-dark';
|
||||
|
||||
export const themes: Theme[] = [
|
||||
flexokiLightTheme,
|
||||
flexokiDarkTheme,
|
||||
];
|
||||
|
||||
export {
|
||||
flexokiLightTheme,
|
||||
flexokiDarkTheme,
|
||||
};
|
||||
|
||||
export function getThemeById(id: string): Theme | undefined {
|
||||
return themes.find(theme => theme.metadata.id === id);
|
||||
}
|
||||
|
||||
export function getDefaultTheme(prefersDark: boolean): Theme {
|
||||
return prefersDark ? flexokiDarkTheme : flexokiLightTheme;
|
||||
}
|
||||
Reference in New Issue
Block a user