123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367 |
- import { colorToRgba, hexToRgb, hexToRgbAlpha } from '../utils/color.js'
- function useHook() {
- const colors = {
- slate: {
- '50': '#f8fafc',
- '100': '#f1f5f9',
- '200': '#e2e8f0',
- '300': '#cbd5e1',
- '400': '#94a3b8',
- '500': '#64748b',
- '600': '#475569',
- '700': '#334155',
- '800': '#1e293b',
- '900': '#0f172a',
- '950': '#020617'
- },
- gray: {
- '50': '#f9fafb',
- '100': '#f3f4f6',
- '200': '#e5e7eb',
- '300': '#d1d5db',
- '400': '#9ca3af',
- '500': '#6b7280',
- '600': '#4b5563',
- '700': '#374151',
- '800': '#1f2937',
- '900': '#111827',
- '950': '#030712'
- },
- zinc: {
- '50': '#fafafa',
- '100': '#f4f4f5',
- '200': '#e4e4e7',
- '300': '#d4d4d8',
- '400': '#a1a1aa',
- '500': '#71717a',
- '600': '#52525b',
- '700': '#3f3f46',
- '800': '#27272a',
- '900': '#18181b',
- '950': '#09090b'
- },
- neutral: {
- '50': '#fafafa',
- '100': '#f5f5f5',
- '200': '#e5e5e5',
- '300': '#d4d4d4',
- '400': '#a3a3a3',
- '500': '#737373',
- '600': '#525252',
- '700': '#404040',
- '800': '#262626',
- '900': '#171717',
- '950': '#0a0a0a'
- },
- stone: {
- '50': '#fafaf9',
- '100': '#f5f5f4',
- '200': '#e7e5e4',
- '300': '#d6d3d1',
- '400': '#a8a29e',
- '500': '#78716c',
- '600': '#57534e',
- '700': '#44403c',
- '800': '#292524',
- '900': '#1c1917',
- '950': '#0c0a09'
- },
- red: {
- '50': '#fef2f2',
- '100': '#fee2e2',
- '200': '#fecaca',
- '300': '#fca5a5',
- '400': '#f87171',
- '500': '#ef4444',
- '600': '#dc2626',
- '700': '#b91c1c',
- '800': '#991b1b',
- '900': '#7f1d1d',
- '950': '#450a0a'
- },
- orange: {
- '50': '#fff7ed',
- '100': '#ffedd5',
- '200': '#fed7aa',
- '300': '#fdba74',
- '400': '#fb923c',
- '500': '#f97316',
- '600': '#ea580c',
- '700': '#c2410c',
- '800': '#9a3412',
- '900': '#7c2d12',
- '950': '#431407'
- },
- amber: {
- '50': '#fffbeb',
- '100': '#fef3c7',
- '200': '#fde68a',
- '300': '#fcd34d',
- '400': '#fbbf24',
- '500': '#f59e0b',
- '600': '#d97706',
- '700': '#b45309',
- '800': '#92400e',
- '900': '#78350f',
- '950': '#451a03'
- },
- yellow: {
- '50': '#fefce8',
- '100': '#fef9c3',
- '200': '#fef08a',
- '300': '#fde047',
- '400': '#facc15',
- '500': '#eab308',
- '600': '#ca8a04',
- '700': '#a16207',
- '800': '#854d0e',
- '900': '#713f12',
- '950': '#422006'
- },
- lime: {
- '50': '#f7fee7',
- '100': '#ecfccb',
- '200': '#d9f99d',
- '300': '#bef264',
- '400': '#a3e635',
- '500': '#84cc16',
- '600': '#65a30d',
- '700': '#4d7c0f',
- '800': '#3f6212',
- '900': '#365314',
- '950': '#1a2e05'
- },
- green: {
- '50': '#f0fdf4',
- '100': '#dcfce7',
- '200': '#bbf7d0',
- '300': '#86efac',
- '400': '#4ade80',
- '500': '#22c55e',
- '600': '#16a34a',
- '700': '#15803d',
- '800': '#166534',
- '900': '#14532d',
- '950': '#052e16'
- },
- emerald: {
- '50': '#ecfdf5',
- '100': '#d1fae5',
- '200': '#a7f3d0',
- '300': '#6ee7b7',
- '400': '#34d399',
- '500': '#10b981',
- '600': '#059669',
- '700': '#047857',
- '800': '#065f46',
- '900': '#064e3b',
- '950': '#022c22'
- },
- teal: {
- '50': '#f0fdfa',
- '100': '#ccfbf1',
- '200': '#99f6e4',
- '300': '#5eead4',
- '400': '#2dd4bf',
- '500': '#14b8a6',
- '600': '#0d9488',
- '700': '#0f766e',
- '800': '#115e59',
- '900': '#134e4a',
- '950': '#042f2e'
- },
- cyan: {
- '50': '#ecfeff',
- '100': '#cffafe',
- '200': '#a5f3fc',
- '300': '#67e8f9',
- '400': '#22d3ee',
- '500': '#06b6d4',
- '600': '#0891b2',
- '700': '#0e7490',
- '800': '#155e75',
- '900': '#164e63',
- '950': '#083344'
- },
- sky: {
- '50': '#f0f9ff',
- '100': '#e0f2fe',
- '200': '#bae6fd',
- '300': '#7dd3fc',
- '400': '#38bdf8',
- '500': '#0ea5e9',
- '600': '#0284c7',
- '700': '#0369a1',
- '800': '#075985',
- '900': '#0c4a6e',
- '950': '#082f49'
- },
- blue: {
- '50': '#eff6ff',
- '100': '#dbeafe',
- '200': '#bfdbfe',
- '300': '#93c5fd',
- '400': '#60a5fa',
- '500': '#3b82f6',
- '600': '#2563eb',
- '700': '#1d4ed8',
- '800': '#1e40af',
- '900': '#1e3a8a',
- '950': '#172554'
- },
- indigo: {
- '50': '#eef2ff',
- '100': '#e0e7ff',
- '200': '#c7d2fe',
- '300': '#a5b4fc',
- '400': '#818cf8',
- '500': '#6366f1',
- '600': '#4f46e5',
- '700': '#4338ca',
- '800': '#3730a3',
- '900': '#312e81',
- '950': '#1e1b4b'
- },
- violet: {
- '50': '#f5f3ff',
- '100': '#ede9fe',
- '200': '#ddd6fe',
- '300': '#c4b5fd',
- '400': '#a78bfa',
- '500': '#8b5cf6',
- '600': '#7c3aed',
- '700': '#6d28d9',
- '800': '#5b21b6',
- '900': '#4c1d95',
- '950': '#2e1065'
- },
- purple: {
- '50': '#faf5ff',
- '100': '#f3e8ff',
- '200': '#e9d5ff',
- '300': '#d8b4fe',
- '400': '#c084fc',
- '500': '#a855f7',
- '600': '#9333ea',
- '700': '#7e22ce',
- '800': '#6b21a8',
- '900': '#581c87',
- '950': '#3b0764'
- },
- fuchsia: {
- '50': '#fdf4ff',
- '100': '#fae8ff',
- '200': '#f5d0fe',
- '300': '#f0abfc',
- '400': '#e879f9',
- '500': '#d946ef',
- '600': '#c026d3',
- '700': '#a21caf',
- '800': '#86198f',
- '900': '#701a75',
- '950': '#4a044e'
- },
- pink: {
- '50': '#fdf2f8',
- '100': '#fce7f3',
- '200': '#fbcfe8',
- '300': '#f9a8d4',
- '400': '#f472b6',
- '500': '#ec4899',
- '600': '#db2777',
- '700': '#be185d',
- '800': '#9d174d',
- '900': '#831843',
- '950': '#500724'
- },
- rose: {
- '50': '#fff1f2',
- '100': '#ffe4e6',
- '200': '#fecdd3',
- '300': '#fda4af',
- '400': '#fb7185',
- '500': '#f43f5e',
- '600': '#e11d48',
- '700': '#be123c',
- '800': '#9f1239',
- '900': '#881337',
- '950': '#4c0519'
- },
- }
-
- function getRgba(color) {
- return [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9].map(alpha => ({
- alpha,
- value: colorToRgba(color, alpha)
- }))
- }
-
- let _arr = [
- {name: 'inherit', value: 'inherit', color: 'inherit'},
- {name: 'current', value: 'currentColor', color: 'currentColor'},
- {name: 'transparent', value: 'transparent', color: 'transparent'},
- {name: 'black', value: 'black', color: '#000', rgb: hexToRgb('#000'),rgbAlpha: hexToRgbAlpha('#000'), rgbas: getRgba('#000')},
- {name: 'white', value: 'white', color: '#fff', rgb: hexToRgb('#fff'),rgbAlpha: hexToRgbAlpha('#fff'), rgbas: getRgba('#fff')},
- ]
- for(let name in colors) {
- for(let i in colors[name]) {
- _arr.push({
- name: `${name}-${i}`,
- value: `var(--color-${name}-${i})`,
- color: colors[name][i],
- rgb: hexToRgb(colors[name][i]),
- rgbAlpha: hexToRgbAlpha(colors[name][i]),
- rgbas: getRgba(colors[name][i]),
- var: 1,
- })
- }
- }
- // console.log(11, colors);
- // $roses: '#fff1f2','#ffe4e6','#fecdd3','#fda4af','#fb7185','#f43f5e','#e11d48','#be123c','#9f1239','#881337','#4c0519';
-
- // $colorNames: ('slate': $slates,'gray': $grays,'zinc': $zincs,'neutral': $neutrals,'stone': $stones,'red': $reds,'orange': $oranges,'amber': $ambers,'yellow': $yellows,'lime': $limes,'green': $greens,'emerald': $emeralds,'teal': $teals,'cyan': $cyans,'sky': $skys,'blue': $blues,'indigo': $indigos,'violet': $violets,'purple': $purples,'fuchsia': $fuchsias,'pink': $pinks,'rose': $roses);
-
- // $colorIndexes: 50, 100, 200, 300, 400, 500, 600, 700, 800, 900, 950;
- function getScssColors() {
- let _colors = {}
- let colorIndexes = []
- for(let name in colors) {
- let cArr = []
- for(let num in colors[name]) {
- const val = colors[name][num]
- cArr.push(hexToRgbAlpha(val))
- if(name == 'red') {
- colorIndexes.push(num - 0)
- }
- }
- _colors[name] = cArr
- }
-
- return {_colors, colorIndexes}
- }
-
- function getScss() {
- const {_colors, colorIndexes} = getScssColors()
- console.log(_colors);
- console.log(`$indexes: ${colorIndexes.join(',')};`)
- let colorStr = ``;
- let names = `$names:(`
- for(let name in _colors) {
- let val = _colors[name]
- colorStr += `$${name}: ${val.map(v => `'${v}'`).join(',')};\n`
- names += `'${name}': $${name},`
- }
- names += `);`
-
- console.log(colorStr, names)
- }
-
- // getScss()
-
- return {
- colors, color: _arr
- }
- }
- export default useHook
|