mirror of
https://github.com/stackblitz/bolt.new
synced 2024-11-27 22:42:21 +00:00
135 lines
2.6 KiB
TypeScript
135 lines
2.6 KiB
TypeScript
import { globSync } from 'fast-glob';
|
|
import fs from 'node:fs/promises';
|
|
import { basename } from 'node:path';
|
|
import { defineConfig, presetIcons, presetUno, transformerDirectives } from 'unocss';
|
|
|
|
const iconPaths = globSync('./icons/*.svg');
|
|
|
|
const collectionName = 'blitz';
|
|
|
|
const customIconCollection = iconPaths.reduce(
|
|
(acc, iconPath) => {
|
|
const [iconName] = basename(iconPath).split('.');
|
|
|
|
acc[collectionName] ??= {};
|
|
acc[collectionName][iconName] = async () => fs.readFile(iconPath, 'utf8');
|
|
|
|
return acc;
|
|
},
|
|
{} as Record<string, Record<string, () => Promise<string>>>,
|
|
);
|
|
|
|
const COLOR_PRIMITIVES = {
|
|
accent: {
|
|
DEFAULT: '#1389FD',
|
|
50: '#EEF9FF',
|
|
100: '#D8F1FF',
|
|
200: '#B9E7FF',
|
|
300: '#89DBFF',
|
|
400: '#52C5FF',
|
|
500: '#2AA7FF',
|
|
600: '#1389FD',
|
|
700: '#0C70E9',
|
|
800: '#115ABC',
|
|
900: '#144D94',
|
|
950: '#11305A',
|
|
},
|
|
gray: {
|
|
0: '#FFFFFF',
|
|
50: '#F6F8F9',
|
|
100: '#EEF0F1',
|
|
200: '#E4E6E9',
|
|
300: '#D2D5D9',
|
|
400: '#AAAFB6',
|
|
500: '#7C8085',
|
|
600: '#565A64',
|
|
700: '#414349',
|
|
800: '#31343B',
|
|
900: '#2B2D35',
|
|
950: '#232429',
|
|
1000: '#000000',
|
|
},
|
|
positive: {
|
|
50: '#EDFCF6',
|
|
100: '#CEFDEB',
|
|
200: '#A1F9DC',
|
|
300: '#64F1CB',
|
|
400: '#24E0B3',
|
|
500: '#02C79F',
|
|
600: '#00A282',
|
|
700: '#00826B',
|
|
800: '#006656',
|
|
900: '#005449',
|
|
950: '#223533',
|
|
},
|
|
negative: {
|
|
50: '#FEF2F3',
|
|
100: '#FDE6E7',
|
|
200: '#FBD0D4',
|
|
300: '#F7AAB1',
|
|
400: '#F06A78',
|
|
500: '#E84B60',
|
|
600: '#D42A48',
|
|
700: '#B21E3C',
|
|
800: '#951C38',
|
|
900: '#801B36',
|
|
950: '#45212A',
|
|
},
|
|
info: {
|
|
50: '#EFF9FF',
|
|
100: '#E5F6FF',
|
|
200: '#B6E9FF',
|
|
300: '#75DAFF',
|
|
400: '#2CC8FF',
|
|
500: '#00AEF2',
|
|
600: '#008ED4',
|
|
700: '#0071AB',
|
|
800: '#005F8D',
|
|
900: '#064F74',
|
|
950: '#17374A',
|
|
},
|
|
warning: {
|
|
50: '#FEFAEC',
|
|
100: '#FCF4D9',
|
|
200: '#F9E08E',
|
|
300: '#F6CA53',
|
|
400: '#ED9413',
|
|
500: '#D2700D',
|
|
600: '#AE4E0F',
|
|
700: '#AE4E0F',
|
|
800: '#8E3D12',
|
|
900: '#753212',
|
|
950: '#402C22',
|
|
},
|
|
};
|
|
|
|
export default defineConfig({
|
|
theme: {
|
|
colors: {
|
|
...COLOR_PRIMITIVES,
|
|
bolt: {
|
|
elements: {
|
|
app: {
|
|
backgroundColor: 'var(--bolt-elements-app-backgroundColor)',
|
|
},
|
|
},
|
|
},
|
|
},
|
|
},
|
|
transformers: [transformerDirectives()],
|
|
presets: [
|
|
presetUno({
|
|
dark: {
|
|
light: '[data-theme="light"]',
|
|
dark: '[data-theme="dark"]',
|
|
},
|
|
}),
|
|
presetIcons({
|
|
warn: true,
|
|
collections: {
|
|
...customIconCollection,
|
|
},
|
|
}),
|
|
],
|
|
});
|