Skip to content

Commit 4a38bdf

Browse files
authored
Merge pull request #66 from 2025-OSDC/develop
🌎 [Deploy] 배포
2 parents 93b89f3 + 747c0fb commit 4a38bdf

11 files changed

Lines changed: 92 additions & 54 deletions

File tree

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"name": "colbrush",
33
"version": "1.11.0",
44
"description": "A React theme switching library that makes it easy to apply color-blind accessible UI themes",
5-
"homepage": "https://colbrush.vercel.app",
5+
"homepage": "https://colbrush.site",
66
"repository": {
77
"type": "git",
88
"url": "https://github.com/2025-OSDC/colbrush.git"

src/assets/X.svg

Lines changed: 2 additions & 2 deletions
Loading

src/assets/logo.svg

Lines changed: 9 additions & 9 deletions
Loading

src/cli/runThemeApply.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,14 +115,19 @@ export async function runThemeApply(
115115
progress?.startSection(label);
116116

117117
try {
118+
progress?.update(0, 'Starting...');
119+
await new Promise(resolve => setTimeout(resolve, 150));
120+
118121
progress?.update(50, 'Processing...');
122+
await new Promise(resolve => setTimeout(resolve, 200));
119123

120124
const themeData = buildThemeForVision(colorKeys, baseColorsArray, vision);
121125
await applyThemes(themeData, cssPath, { silent: hideIndividualThemeLog });
122126

123127
const executionTime = (Date.now() - visionStartTime) / 1000;
124128

125129
progress?.update(100, 'Theme generated successfully');
130+
await new Promise(resolve => setTimeout(resolve, 150));
126131
progress?.finishSection('✅ Complete');
127132

128133
result.themes.push({

src/core/constants/modes.ts

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,12 @@ import { TThemeKey, VisionMode } from '../types.js';
44
export type SimulationMode = Exclude<VisionMode, 'none'>;
55

66
export const SIMULATION_MODES: SimulationMode[] = [
7-
'deuteranopia',
87
'protanopia',
8+
'deuteranopia',
99
'tritanopia',
1010
];
1111

12-
export const THEME_MODES: TThemeKey[] = [
13-
'default',
14-
...SIMULATION_MODES,
15-
];
12+
export const THEME_MODES: TThemeKey[] = ['default', ...SIMULATION_MODES];
1613

1714
export const VISION_MODES: VisionMode[] = ['none', ...SIMULATION_MODES];
1815

@@ -24,7 +21,7 @@ export const MODE_LABELS: Record<TLanguage, Record<VisionMode, string>> = {
2421
tritanopia: 'tritanopia',
2522
},
2623
Korean: {
27-
none: '꺼짐',
24+
none: '기본',
2825
protanopia: '적색맹',
2926
deuteranopia: '녹색맹',
3027
tritanopia: '청색맹',
@@ -46,6 +43,11 @@ export const THEME_LABEL: Record<TLanguage, Record<TThemeKey, string>> = {
4643
},
4744
};
4845

46+
export const SIMULATE_LABEL: Record<TLanguage, string> = {
47+
English: 'Simulate',
48+
Korean: '시뮬레이션',
49+
};
50+
4951
export function isVisionMode(value: string | null): value is VisionMode {
5052
return (value ?? '') !== '' && VISION_MODES.includes(value as VisionMode);
5153
}

src/core/constants/position.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,6 @@ export const SWITCHER_MENU_POSITION: Record<TPosition, string> = {
2828
export const TOOLBAR_POSITION: Record<TPosition, string> = {
2929
'left-bottom': 'left-[16px] bottom-[16px]',
3030
'right-bottom': 'right-[16px] bottom-[16px]',
31-
'left-top': 'left-[16px] top-[16px]',
32-
'right-top': 'right-[16px] top-[16px]',
31+
'left-top': 'left-[16px] top-[100px]',
32+
'right-top': 'right-[16px] top-[100px]',
3333
};

src/icons/Logo.tsx

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,37 +4,37 @@ const SvgLogo = (props: SVGProps<SVGSVGElement>) => (
44
<svg
55
xmlns="http://www.w3.org/2000/svg"
66
fill="none"
7-
viewBox="0 0 39 40"
7+
viewBox="0 0 91 91"
88
{...props}
99
>
10-
<path fill="#CE78A9" d="m.5 17.805 1.516-3.514 16.812-7.924-1.309 3.308z" />
10+
<path fill="#CE78A9" d="m0 40.298 3.56-8.254 39.49-18.612-3.075 7.768z" />
1111
<path
1212
fill="#D55D00"
13-
d="M3.187 24.212 1.05 19.32l14.056-7.097-1.378 3.376-9.233 4.685 2.48 5.72z"
13+
d="M6.314 55.35 1.297 43.86l33.016-16.67-3.237 7.93L9.389 46.125l5.826 13.433z"
1414
/>
1515
<path
1616
fill="#E59F01"
17-
d="m22.276.741 3.496 1.556 7.732 16.901-3.292-1.347z"
17+
d="m51.144.22 8.213 3.654 18.161 39.699-7.733-3.163z"
1818
/>
1919
<path
20-
fill="#000"
21-
d="m15.837 3.355 4.916-2.08L27.69 15.41l-3.36-1.417-4.58-9.285-5.747 2.415z"
20+
fill="#fff"
21+
d="m36.02 6.362 11.548-4.886L63.86 34.68l-7.893-3.327L45.21 9.543l-13.498 5.672z"
2222
/>
2323
<path
2424
fill="#0072B1"
25-
d="m17.036 39.246-3.493-1.562-7.699-16.917 3.29 1.354z"
25+
d="m38.84 90.671-8.206-3.67-18.083-39.735 7.727 3.179z"
2626
/>
2727
<path
2828
fill="#F0E442"
29-
d="m23.477 36.645-4.92 2.07-6.908-14.149 3.357 1.423 4.562 9.295 5.751-2.404z"
29+
d="m53.975 84.56-11.557 4.864-16.227-33.236 7.886 3.343 10.715 21.832 13.51-5.647z"
3030
/>
3131
<path
3232
fill="#009F73"
33-
d="m38.889 22.215-1.482 3.529-16.734 8.087 1.277-3.32z"
33+
d="m90.17 50.665-3.48 8.288-39.306 18.995 2.999-7.798z"
3434
/>
3535
<path
3636
fill="#56B4E8"
37-
d="m36.14 15.833 2.184 4.871-13.987 7.233 1.345-3.389 9.187-4.775-2.536-5.694z"
37+
d="m83.71 35.677 5.128 11.441-32.852 16.99 3.16-7.961L80.723 44.93l-5.957-13.375z"
3838
/>
3939
</svg>
4040
);

src/icons/X.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,13 @@ const SvgX = (props: SVGProps<SVGSVGElement>) => (
88
{...props}
99
>
1010
<path
11-
fill="#000"
11+
fill="#fff"
1212
fillRule="evenodd"
1313
d="M25.977 4.023a.94.94 0 0 1 0 1.328L5.352 25.976a.939.939 0 0 1-1.327-1.328L24.65 4.023a.94.94 0 0 1 1.327 0"
1414
clipRule="evenodd"
1515
/>
1616
<path
17-
fill="#000"
17+
fill="#fff"
1818
fillRule="evenodd"
1919
d="M4.023 4.023a.94.94 0 0 0 0 1.328L24.65 25.976a.939.939 0 0 0 1.327-1.328L5.351 4.023a.94.94 0 0 0-1.328 0"
2020
clipRule="evenodd"

src/react/SimulationFilter.tsx

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import {
66
} from '../core/constants/simulation.js';
77
import {
88
MODE_LABELS,
9+
SIMULATE_LABEL,
910
SIMULATION_MODES,
1011
isVisionMode,
1112
} from '../core/constants/modes.js';
@@ -167,21 +168,29 @@ export default function SimulationFilter(props?: SimulationFilterProps) {
167168
</svg>
168169

169170
<div
170-
className={`cb-vision-toolbar h-[36px] fixed z-[100] inline-flex items-center gap-[6px] rounded-[10px] bg-[rgba(17,17,17,0.85)] p-[6px_8px] text-[12px] text-white opacity-90 shadow-[0_6px_18px_rgba(0,0,0,0.25)] backdrop-blur-[6px] ${toolBarClass}`}
171+
className={`cb-vision-toolbar h-[34px] fixed z-[100] inline-flex items-center gap-[6px] rounded-[8px] bg-[#555555] px-[18px] py-2 text-[14px] text-white font-medium opacity-90 shadow-[0_6px_18px_rgba(0,0,0,0.25)] backdrop-blur-[6px] ${toolBarClass}`}
171172
>
173+
<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none">
174+
<path d="M18 9C18 9 14.625 2.8125 9 2.8125C3.375 2.8125 0 9 0 9C0 9 3.375 15.1875 9 15.1875C14.625 15.1875 18 9 18 9ZM1.31929 9C1.38333 8.90236 1.45636 8.79387 1.53818 8.67647C1.91493 8.13592 2.47085 7.41702 3.18612 6.70175C4.63616 5.2517 6.6157 3.9375 9 3.9375C11.3843 3.9375 13.3638 5.2517 14.8139 6.70175C15.5292 7.41702 16.0851 8.13592 16.4618 8.67647C16.5436 8.79387 16.6167 8.90236 16.6807 9C16.6167 9.09764 16.5436 9.20613 16.4618 9.32353C16.0851 9.86408 15.5292 10.583 14.8139 11.2983C13.3638 12.7483 11.3843 14.0625 9 14.0625C6.6157 14.0625 4.63616 12.7483 3.18612 11.2983C2.47085 10.583 1.91493 9.86408 1.53818 9.32353C1.45636 9.20613 1.38333 9.09764 1.31929 9Z" fill="white"/>
175+
<path d="M9 6.1875C7.4467 6.1875 6.1875 7.4467 6.1875 9C6.1875 10.5533 7.4467 11.8125 9 11.8125C10.5533 11.8125 11.8125 10.5533 11.8125 9C11.8125 7.4467 10.5533 6.1875 9 6.1875ZM5.0625 9C5.0625 6.82538 6.82538 5.0625 9 5.0625C11.1746 5.0625 12.9375 6.82538 12.9375 9C12.9375 11.1746 11.1746 12.9375 9 12.9375C6.82538 12.9375 5.0625 11.1746 5.0625 9Z" fill="white"/>
176+
</svg>
172177
<span
173-
className="font-medium hover:cursor-pointer"
178+
className="font-medium hover:cursor-pointer ml-[11px]"
174179
onClick={() => setOpen(!open)}
175180
>
176-
Vision
181+
{SIMULATE_LABEL[language]}
177182
</span>
178183

184+
{open && (
185+
<div className="w-0 h-5 mx-3 outline outline-[0.40px] outline-offset-[-0.20px] outline-[#909090]" />
186+
)}
187+
179188
{open &&
180189
MODES.map((value) => (
181190
<button
182191
key={value}
183192
type="button"
184-
className={`rounded-[6px] px-[6px] py-[3px] ${
193+
className={`rounded-[8px] px-2 py-1 text-[12px] font-normal ${
185194
simulationFilter === value
186195
? 'bg-white text-black'
187196
: 'hover:bg-[rgba(255,255,255,0.2)]'

0 commit comments

Comments
 (0)