gyeol 0.1.4 → 0.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -18,8 +18,8 @@ npm install gyeol
18
18
 
19
19
  ```html
20
20
  <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Hahmlet:wght@300;500;700;800&family=IBM+Plex+Sans+KR:wght@400;500;600&family=IBM+Plex+Mono:wght@400;500&display=swap">
21
- <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/gyeol@0.1.3/gyeol.css">
22
- <!-- 또는 unpkg: <link rel="stylesheet" href="https://unpkg.com/gyeol@0.1.3/gyeol.css"> -->
21
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/gyeol@0.1.4/gyeol.css">
22
+ <!-- 또는 unpkg: <link rel="stylesheet" href="https://unpkg.com/gyeol@0.1.4/gyeol.css"> -->
23
23
 
24
24
  <html data-palette="meok" data-theme="dark">
25
25
  <body class="gy">
@@ -34,8 +34,8 @@ CDN은 jsDelivr와 unpkg 중 하나를 쓰면 돼요. 버전을 빼고 `gyeol/gy
34
34
 
35
35
  | CDN | 주소 |
36
36
  | --- | --- |
37
- | jsDelivr | `https://cdn.jsdelivr.net/npm/gyeol@0.1.3/gyeol.css` |
38
- | unpkg | `https://unpkg.com/gyeol@0.1.3/gyeol.css` |
37
+ | jsDelivr | `https://cdn.jsdelivr.net/npm/gyeol@0.1.4/gyeol.css` |
38
+ | unpkg | `https://unpkg.com/gyeol@0.1.4/gyeol.css` |
39
39
 
40
40
  번들러(Vite, Next.js 등)를 쓰면 CSS를 이렇게 불러와요.
41
41
 
package/gyeol.css CHANGED
@@ -1,151 +1,151 @@
1
- /*!
2
- * 결 gyeol — layered-paper design system
3
- * 사용법: <html data-palette="meok" data-theme="dark">
4
- * data-palette: meok | jjok | cheongja | songhwa | yeonji | jaju |
5
- * chija | hwangto | oksaek | haneul | odi (기본 meok)
6
- * data-theme: dark | light | system (기본 dark)
7
- * 화면 일부만 다른 팔레트·테마로: <section data-palette="yeonji" data-theme="light"> (0.1.2+)
8
- * 모든 컴포넌트 클래스는 gy- 접두사를 써서 다른 CSS와 충돌하지 않아요.
9
- * 글꼴: https://fonts.googleapis.com/css2?family=Hahmlet:wght@300;500;700;800&family=IBM+Plex+Sans+KR:wght@400;500;600&family=IBM+Plex+Mono:wght@400;500&display=swap
10
- */
11
-
12
- /* ---------- tokens ---------- */
13
- :root{
14
- --h:255; --c:.012; --ah:265; --ac:.14; /* 기본 팔레트: 먹 + 쪽빛 강조 */
15
- --f-display: "Hahmlet", "Nanum Myeongjo", "Apple SD Gothic Neo", serif;
16
- --f-body: "IBM Plex Sans KR", "Apple SD Gothic Neo", "Malgun Gothic", system-ui, sans-serif;
17
- --f-mono: "IBM Plex Mono", ui-monospace, "Consolas", monospace;
18
-
19
- --pun-1:4px; --pun-2:8px; --pun-3:12px; --pun-4:16px; --pun-6:24px; --pun-8:32px; --pun-12:48px; --pun-16:64px;
20
- --r-1:6px; --r-2:12px; --r-3:20px; --r-4:28px; --r-pill:999px;
21
- --ease-bleed: cubic-bezier(.2,.7,.2,1);
22
- --t-1:120ms; --t-2:220ms; --t-3:420ms;
23
-
24
- }
25
- /* 색 토큰: 루트와, 팔레트·테마를 따로 지정한 모든 요소에서 다시 계산돼요 */
26
- :root, [data-palette], [data-theme]{
27
- --bg: oklch(96.5% calc(var(--c)*.12) var(--h));
28
- --bg-2: oklch(92.5% calc(var(--c)*.22) var(--h));
29
- --ink: oklch(23% calc(var(--c)*.35) var(--h));
30
- --ink-2: oklch(43% calc(var(--c)*.25) var(--h));
31
- --ink-3: oklch(50% calc(var(--c)*.18) var(--h));
32
- --line: oklch(84% calc(var(--c)*.22) var(--h));
33
- --paper: oklch(99.2% calc(var(--c)*.05) var(--h));
34
- --accent: oklch(49% var(--ac) var(--ah));
35
- --accent-soft: oklch(90% calc(var(--ac)*.45) var(--ah));
36
- --on-accent: oklch(99% 0 0);
37
- --stain: oklch(80% calc(var(--c)*.9 + .03) calc(var(--h) + 70));
38
- --ok: oklch(50% .13 150); --warn: oklch(54% .13 65); --err: oklch(52% .19 25);
39
- --shadow: 0 1px 0 oklch(100% 0 0 / .7) inset, 0 18px 40px -22px oklch(25% .06 var(--h) / .35), 0 2px 6px -2px oklch(25% .04 var(--h) / .12);
40
- --grain: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220'><filter id='a'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .32 0'/></filter><filter id='b'><feTurbulence type='fractalNoise' baseFrequency='.012 .32' numOctaves='2' seed='4' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .7 -.42'/></filter><rect width='100%' height='100%' filter='url(%23a)'/><rect width='100%' height='100%' filter='url(%23b)'/></svg>");
41
- --grain-o: .4;
42
-
43
- color-scheme: light;
44
- }
45
- @media (prefers-color-scheme: dark){ :root[data-theme="system"], :root[data-theme="system"] [data-palette]:not([data-theme]):not([data-theme="light"] *){
46
- --bg: oklch(17% calc(var(--c)*.22) var(--h)); --bg-2: oklch(21% calc(var(--c)*.3) var(--h));
47
- --ink: oklch(95% calc(var(--c)*.08) var(--h)); --ink-2: oklch(79% calc(var(--c)*.15) var(--h)); --ink-3: oklch(70% calc(var(--c)*.15) var(--h));
48
- --line: oklch(33% calc(var(--c)*.25) var(--h)); --paper: oklch(29% calc(var(--c)*.25) var(--h));
49
- --accent: oklch(76% var(--ac) var(--ah)); --accent-soft: oklch(33% calc(var(--ac)*.55) var(--ah)); --on-accent: oklch(18% .03 var(--ah));
50
- --stain: oklch(48% calc(var(--c)*.9 + .03) calc(var(--h) + 70));
51
- --ok: oklch(74% .14 150); --warn: oklch(80% .13 75); --err: oklch(72% .16 25);
52
- --shadow: 0 1px 0 oklch(100% 0 0 / .07) inset, 0 20px 44px -20px oklch(5% .02 var(--h) / .7), 0 2px 6px -2px oklch(5% 0 0 / .4);
53
- --grain: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220'><filter id='a'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .22 0'/></filter><filter id='b'><feTurbulence type='fractalNoise' baseFrequency='.012 .32' numOctaves='2' seed='4' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .6 -.4'/></filter><rect width='100%' height='100%' filter='url(%23a)'/><rect width='100%' height='100%' filter='url(%23b)'/></svg>");
54
- --grain-o: .35; color-scheme: dark;
55
- }}
56
- :root:not([data-theme="light"]):not([data-theme="system"]), [data-theme="dark"],
57
- :root:not([data-theme="light"]):not([data-theme="system"]) [data-palette]:not([data-theme]):not([data-theme="light"] *){
58
- --bg: oklch(17% calc(var(--c)*.22) var(--h)); --bg-2: oklch(21% calc(var(--c)*.3) var(--h));
59
- --ink: oklch(95% calc(var(--c)*.08) var(--h)); --ink-2: oklch(79% calc(var(--c)*.15) var(--h)); --ink-3: oklch(70% calc(var(--c)*.15) var(--h));
60
- --line: oklch(33% calc(var(--c)*.25) var(--h)); --paper: oklch(29% calc(var(--c)*.25) var(--h));
61
- --accent: oklch(76% var(--ac) var(--ah)); --accent-soft: oklch(33% calc(var(--ac)*.55) var(--ah)); --on-accent: oklch(18% .03 var(--ah));
62
- --stain: oklch(48% calc(var(--c)*.9 + .03) calc(var(--h) + 70));
63
- --ok: oklch(74% .14 150); --warn: oklch(80% .13 75); --err: oklch(72% .16 25);
64
- --shadow: 0 1px 0 oklch(100% 0 0 / .07) inset, 0 20px 44px -20px oklch(5% .02 var(--h) / .7), 0 2px 6px -2px oklch(5% 0 0 / .4);
65
- --grain: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220'><filter id='a'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .22 0'/></filter><filter id='b'><feTurbulence type='fractalNoise' baseFrequency='.012 .32' numOctaves='2' seed='4' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .6 -.4'/></filter><rect width='100%' height='100%' filter='url(%23a)'/><rect width='100%' height='100%' filter='url(%23b)'/></svg>");
66
- --grain-o: .35; color-scheme: dark;
67
- }
68
- [data-palette="meok"] {--h:255;--c:.012;--ah:265;--ac:.14}
69
- [data-palette="jjok"] {--h:265;--c:.14; --ah:265;--ac:.14}
70
- [data-palette="cheongja"]{--h:178;--c:.075;--ah:178;--ac:.075}
71
- [data-palette="songhwa"] {--h:98; --c:.12; --ah:98; --ac:.12}
72
- [data-palette="yeonji"] {--h:16; --c:.16; --ah:16; --ac:.16}
73
- [data-palette="jaju"] {--h:330;--c:.13; --ah:330;--ac:.13}
74
- [data-palette="chija"] {--h:70;--c:0.14;--ah:70;--ac:0.14}
75
- [data-palette="hwangto"] {--h:48;--c:.065;--ah:48;--ac:.065}
76
- [data-palette="oksaek"] {--h:195;--c:0.08;--ah:195;--ac:0.08}
77
- [data-palette="haneul"] {--h:235;--c:0.11;--ah:235;--ac:0.11}
78
- [data-palette="odi"] {--h:300;--c:0.12;--ah:300;--ac:0.12}
79
- /* 화면 일부에 팔레트·테마를 따로 지정하면 글자색도 그 범위의 먹색을 따라가요 */
80
- :where([data-palette], [data-theme]):not(:root){color:var(--ink)}
81
-
82
- /* ---------- base (opt-in: add class="gy" to <body>) ---------- */
83
- .gy{margin:0;color:var(--ink);background:var(--bg);font:400 16px/1.65 var(--f-body);-webkit-font-smoothing:antialiased}
84
- .gy :focus-visible{outline:2px solid var(--accent);outline-offset:3px;box-shadow:0 0 0 7px color-mix(in oklch, var(--accent) 22%, transparent)}
85
-
86
- /* ---------- material: 겹 ---------- */
87
- .gy-gyeop{position:relative;isolation:isolate;background:color-mix(in oklch, var(--paper) var(--thick,74%), transparent);-webkit-backdrop-filter:blur(var(--blur,14px)) saturate(1.2);backdrop-filter:blur(var(--blur,14px)) saturate(1.2);border:1px solid color-mix(in oklch, var(--paper) 50%, var(--line));border-radius:var(--r-3);box-shadow:var(--shadow)}
88
- .gy-gyeop::before{content:"";position:absolute;inset:0;border-radius:inherit;background-image:var(--grain);opacity:var(--grain-o);pointer-events:none;z-index:-1}
89
- .gy-hol{--thick:46%;--blur:6px}
90
- .gy-du {--thick:72%;--blur:14px}
91
- .gy-se {--thick:90%;--blur:24px}
92
-
93
- /* ---------- button ---------- */
94
- .gy-btn{--bg-b:var(--accent);--fg-b:var(--on-accent);appearance:none;border:0;cursor:pointer;font:600 15px/1 var(--f-body);color:var(--fg-b);background:var(--bg-b);padding:13px 20px;border-radius:var(--r-2);display:inline-flex;align-items:center;gap:8px;text-decoration:none;transition:transform var(--t-1) var(--ease-bleed), box-shadow var(--t-3) var(--ease-bleed)}
95
- .gy-btn:hover{box-shadow:0 0 0 1px var(--bg-b), 0 6px 22px -4px color-mix(in oklch, var(--bg-b) 60%, transparent)}
96
- .gy-btn:active{transform:translateY(1px) scale(.985)}
97
- .gy-btn--ink{--bg-b:var(--ink);--fg-b:var(--bg)}
98
- .gy-btn--paper{--fg-b:var(--ink);background:color-mix(in oklch, var(--paper) 74%, transparent);border:1px solid var(--line);backdrop-filter:blur(12px)}
99
- .gy-btn--paper:hover{box-shadow:0 6px 22px -8px color-mix(in oklch, var(--ink) 40%, transparent)}
100
- .gy-btn--ghost{--fg-b:var(--accent);background:transparent}
101
- .gy-btn--ghost:hover{background:color-mix(in oklch, var(--accent) 10%, transparent);box-shadow:none}
102
- .gy-btn--danger{--bg-b:var(--err);--fg-b:oklch(99% 0 0)}
103
- .gy-btn--sm{padding:9px 14px;font-size:14px;border-radius:10px}
104
- .gy-btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}
105
-
106
- /* ---------- switch: <button class="gy-switch" role="switch" aria-checked="true"> ---------- */
107
- .gy-switch{appearance:none;border:0;cursor:pointer;width:50px;height:30px;border-radius:var(--r-pill);background:var(--line);position:relative;transition:background var(--t-2) var(--ease-bleed);flex:none}
108
- .gy-switch::after{content:"";position:absolute;top:3px;left:3px;width:24px;height:24px;border-radius:50%;background:var(--paper);box-shadow:0 2px 6px oklch(0% 0 0 / .25);transition:transform var(--t-2) var(--ease-bleed)}
109
- .gy-switch[aria-checked="true"]{background:var(--accent)}
110
- .gy-switch[aria-checked="true"]::after{transform:translateX(20px);background:oklch(99% 0 0)}
111
-
112
- /* ---------- segmented: buttons with aria-pressed ---------- */
113
- .gy-seg{display:inline-flex;padding:4px;border-radius:var(--r-pill);background:color-mix(in oklch, var(--ink) 7%, transparent);gap:2px}
114
- .gy-seg button{appearance:none;border:0;background:transparent;color:var(--ink-2);font:500 14px/1 var(--f-body);padding:8px 14px;border-radius:var(--r-pill);cursor:pointer}
115
- .gy-seg button[aria-pressed="true"]{background:var(--paper);color:var(--ink);box-shadow:0 1px 3px oklch(0% 0 0 / .14)}
116
-
117
- /* ---------- chip ---------- */
118
- .gy-chip{appearance:none;cursor:pointer;border:1px solid var(--line);background:transparent;color:var(--ink-2);font:500 14px/1 var(--f-body);padding:8px 13px;border-radius:var(--r-pill)}
119
- .gy-chip[aria-pressed="true"]{background:var(--accent-soft);border-color:transparent;color:var(--ink)}
120
-
121
- /* ---------- field ---------- */
122
- .gy-field{display:flex;flex-direction:column;gap:6px}
123
- .gy-field label{font-size:13px;font-weight:500;color:var(--ink-2)}
124
- .gy-field input,.gy-field textarea,.gy-field select{font:400 15px var(--f-body);color:var(--ink);background:color-mix(in oklch, var(--paper) 80%, transparent);border:1px solid var(--line);border-radius:var(--r-2);padding:11px 13px;transition:border-color var(--t-2), box-shadow var(--t-3) var(--ease-bleed)}
125
- .gy-field :is(input,textarea,select):focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 5px color-mix(in oklch, var(--accent) 18%, transparent), 0 0 18px 2px color-mix(in oklch, var(--accent) 22%, transparent)}
126
- .gy-field small{font-size:13px;color:var(--ink-3)}
127
- .gy-field--error :is(input,textarea,select){border-color:var(--err)}
128
- .gy-field--error small{color:var(--err)}
129
-
130
- /* ---------- checkbox: <label class="gy-check"><input type="checkbox"> 텍스트</label> ---------- */
131
- .gy-check{display:flex;gap:10px;align-items:center;font-size:15px;cursor:pointer}
132
- .gy-check input{appearance:none;width:20px;height:20px;border-radius:6px;border:1.5px solid var(--ink-3);display:grid;place-items:center;margin:0;cursor:pointer}
133
- .gy-check input:checked{background:var(--accent);border-color:var(--accent)}
134
- .gy-check input:checked::after{content:"";width:9px;height:5px;border:2px solid var(--on-accent);border-top:0;border-right:0;transform:rotate(-45deg) translate(1px,-1px)}
135
-
136
- /* ---------- badge ---------- */
137
- .gy-badge{font:600 12px/1 var(--f-body);padding:7px 11px;border-radius:var(--r-pill);display:inline-flex;align-items:center;gap:5px;color:var(--accent);background:color-mix(in oklch, var(--accent) 13%, transparent)}
138
- .gy-badge::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
139
- .gy-badge--ok{color:var(--ok);background:color-mix(in oklch, var(--ok) 14%, transparent)}
140
- .gy-badge--warn{color:var(--warn);background:color-mix(in oklch, var(--warn) 16%, transparent)}
141
- .gy-badge--err{color:var(--err);background:color-mix(in oklch, var(--err) 14%, transparent)}
142
-
143
- /* ---------- progress: <div class="gy-progress" style="--p:60%"><i></i></div> ---------- */
144
- .gy-progress{height:8px;border-radius:var(--r-pill);background:color-mix(in oklch, var(--ink) 9%, transparent);overflow:hidden}
145
- .gy-progress > i{display:block;height:100%;width:var(--p,0%);border-radius:inherit;background:linear-gradient(90deg, color-mix(in oklch, var(--accent) 50%, transparent), var(--accent))}
146
-
147
- /* ---------- toast / tooltip ---------- */
148
- .gy-toast{display:flex;align-items:center;gap:12px;padding:12px 16px;font-size:14.5px}
149
- .gy-tooltip{font-size:13px;padding:7px 11px;border-radius:10px;background:var(--ink);color:var(--bg)}
150
-
151
- @media (prefers-reduced-motion: reduce){.gy *,.gy *::before,.gy *::after{transition:none!important;animation:none!important}}
1
+ /*!
2
+ * 결 gyeol — layered-paper design system
3
+ * 사용법: <html data-palette="meok" data-theme="dark">
4
+ * data-palette: meok | jjok | cheongja | songhwa | yeonji | jaju |
5
+ * chija | hwangto | oksaek | haneul | odi (기본 meok)
6
+ * data-theme: dark | light | system (기본 dark)
7
+ * 화면 일부만 다른 팔레트·테마로: <section data-palette="yeonji" data-theme="light"> (0.1.2+)
8
+ * 모든 컴포넌트 클래스는 gy- 접두사를 써서 다른 CSS와 충돌하지 않아요.
9
+ * 글꼴: https://fonts.googleapis.com/css2?family=Hahmlet:wght@300;500;700;800&family=IBM+Plex+Sans+KR:wght@400;500;600&family=IBM+Plex+Mono:wght@400;500&display=swap
10
+ */
11
+
12
+ /* ---------- tokens ---------- */
13
+ :root{
14
+ --h:255; --c:.012; --ah:265; --ac:.14; --ad:0%; /* 기본 팔레트: 먹 + 쪽빛 강조 */
15
+ --f-display: "Hahmlet", "Nanum Myeongjo", "Apple SD Gothic Neo", serif;
16
+ --f-body: "IBM Plex Sans KR", "Apple SD Gothic Neo", "Malgun Gothic", system-ui, sans-serif;
17
+ --f-mono: "IBM Plex Mono", ui-monospace, "Consolas", monospace;
18
+
19
+ --pun-1:4px; --pun-2:8px; --pun-3:12px; --pun-4:16px; --pun-6:24px; --pun-8:32px; --pun-12:48px; --pun-16:64px;
20
+ --r-1:6px; --r-2:12px; --r-3:20px; --r-4:28px; --r-pill:999px;
21
+ --ease-bleed: cubic-bezier(.2,.7,.2,1);
22
+ --t-1:120ms; --t-2:220ms; --t-3:420ms;
23
+
24
+ }
25
+ /* 색 토큰: 루트와, 팔레트·테마를 따로 지정한 모든 요소에서 다시 계산돼요 */
26
+ :root, [data-palette], [data-theme]{
27
+ --bg: oklch(96.5% calc(var(--c)*.12) var(--h));
28
+ --bg-2: oklch(92.5% calc(var(--c)*.22) var(--h));
29
+ --ink: oklch(23% calc(var(--c)*.35) var(--h));
30
+ --ink-2: oklch(43% calc(var(--c)*.25) var(--h));
31
+ --ink-3: oklch(50% calc(var(--c)*.18) var(--h));
32
+ --line: oklch(84% calc(var(--c)*.22) var(--h));
33
+ --paper: oklch(99.2% calc(var(--c)*.05) var(--h));
34
+ --accent: oklch(calc(49% + var(--ad)) var(--ac) var(--ah));
35
+ --accent-soft: oklch(90% calc(var(--ac)*.45) var(--ah));
36
+ --on-accent: oklch(99% 0 0);
37
+ --stain: oklch(80% calc(var(--c)*.9 + .03) calc(var(--h) + 70));
38
+ --ok: oklch(50% .13 150); --warn: oklch(54% .13 65); --err: oklch(52% .19 25);
39
+ --shadow: 0 1px 0 oklch(100% 0 0 / .7) inset, 0 18px 40px -22px oklch(25% .06 var(--h) / .35), 0 2px 6px -2px oklch(25% .04 var(--h) / .12);
40
+ --grain: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220'><filter id='a'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .32 0'/></filter><filter id='b'><feTurbulence type='fractalNoise' baseFrequency='.012 .32' numOctaves='2' seed='4' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .7 -.42'/></filter><rect width='100%' height='100%' filter='url(%23a)'/><rect width='100%' height='100%' filter='url(%23b)'/></svg>");
41
+ --grain-o: .4;
42
+
43
+ color-scheme: light;
44
+ }
45
+ @media (prefers-color-scheme: dark){ :root[data-theme="system"], :root[data-theme="system"] [data-palette]:not([data-theme]):not([data-theme="light"] *){
46
+ --bg: oklch(17% calc(var(--c)*.22) var(--h)); --bg-2: oklch(21% calc(var(--c)*.3) var(--h));
47
+ --ink: oklch(95% calc(var(--c)*.08) var(--h)); --ink-2: oklch(79% calc(var(--c)*.15) var(--h)); --ink-3: oklch(70% calc(var(--c)*.15) var(--h));
48
+ --line: oklch(33% calc(var(--c)*.25) var(--h)); --paper: oklch(29% calc(var(--c)*.25) var(--h));
49
+ --accent: oklch(calc(76% + var(--ad)) var(--ac) var(--ah)); --accent-soft: oklch(33% calc(var(--ac)*.55) var(--ah)); --on-accent: oklch(18% .03 var(--ah));
50
+ --stain: oklch(48% calc(var(--c)*.9 + .03) calc(var(--h) + 70));
51
+ --ok: oklch(74% .14 150); --warn: oklch(80% .13 75); --err: oklch(72% .16 25);
52
+ --shadow: 0 1px 0 oklch(100% 0 0 / .07) inset, 0 20px 44px -20px oklch(5% .02 var(--h) / .7), 0 2px 6px -2px oklch(5% 0 0 / .4);
53
+ --grain: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220'><filter id='a'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .22 0'/></filter><filter id='b'><feTurbulence type='fractalNoise' baseFrequency='.012 .32' numOctaves='2' seed='4' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .6 -.4'/></filter><rect width='100%' height='100%' filter='url(%23a)'/><rect width='100%' height='100%' filter='url(%23b)'/></svg>");
54
+ --grain-o: .35; color-scheme: dark;
55
+ }}
56
+ :root:not([data-theme="light"]):not([data-theme="system"]), [data-theme="dark"],
57
+ :root:not([data-theme="light"]):not([data-theme="system"]) [data-palette]:not([data-theme]):not([data-theme="light"] *){
58
+ --bg: oklch(17% calc(var(--c)*.22) var(--h)); --bg-2: oklch(21% calc(var(--c)*.3) var(--h));
59
+ --ink: oklch(95% calc(var(--c)*.08) var(--h)); --ink-2: oklch(79% calc(var(--c)*.15) var(--h)); --ink-3: oklch(70% calc(var(--c)*.15) var(--h));
60
+ --line: oklch(33% calc(var(--c)*.25) var(--h)); --paper: oklch(29% calc(var(--c)*.25) var(--h));
61
+ --accent: oklch(calc(76% + var(--ad)) var(--ac) var(--ah)); --accent-soft: oklch(33% calc(var(--ac)*.55) var(--ah)); --on-accent: oklch(18% .03 var(--ah));
62
+ --stain: oklch(48% calc(var(--c)*.9 + .03) calc(var(--h) + 70));
63
+ --ok: oklch(74% .14 150); --warn: oklch(80% .13 75); --err: oklch(72% .16 25);
64
+ --shadow: 0 1px 0 oklch(100% 0 0 / .07) inset, 0 20px 44px -20px oklch(5% .02 var(--h) / .7), 0 2px 6px -2px oklch(5% 0 0 / .4);
65
+ --grain: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220'><filter id='a'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .22 0'/></filter><filter id='b'><feTurbulence type='fractalNoise' baseFrequency='.012 .32' numOctaves='2' seed='4' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .6 -.4'/></filter><rect width='100%' height='100%' filter='url(%23a)'/><rect width='100%' height='100%' filter='url(%23b)'/></svg>");
66
+ --grain-o: .35; color-scheme: dark;
67
+ }
68
+ [data-palette="meok"] {--h:255;--c:.012;--ah:265;--ac:.14;--ad:0%}
69
+ [data-palette="jjok"] {--h:265;--c:.14; --ah:265;--ac:.14;--ad:0%}
70
+ [data-palette="cheongja"]{--h:178;--c:.08;--ah:178;--ac:.08;--ad:4%}
71
+ [data-palette="songhwa"] {--h:98; --c:.12; --ah:98; --ac:.12;--ad:0%}
72
+ [data-palette="yeonji"] {--h:16; --c:.16; --ah:16; --ac:.16;--ad:0%}
73
+ [data-palette="jaju"] {--h:330;--c:.13; --ah:330;--ac:.13;--ad:0%}
74
+ [data-palette="chija"] {--h:70;--c:0.14;--ah:70;--ac:0.14;--ad:0%}
75
+ [data-palette="hwangto"] {--h:48;--c:.065;--ah:48;--ac:.065;--ad:0%}
76
+ [data-palette="oksaek"] {--h:195;--c:.10;--ah:195;--ac:.10;--ad:-5%}
77
+ [data-palette="haneul"] {--h:235;--c:0.11;--ah:235;--ac:0.11;--ad:0%}
78
+ [data-palette="odi"] {--h:300;--c:0.12;--ah:300;--ac:0.12;--ad:0%}
79
+ /* 화면 일부에 팔레트·테마를 따로 지정하면 글자색도 그 범위의 먹색을 따라가요 */
80
+ :where([data-palette], [data-theme]):not(:root){color:var(--ink)}
81
+
82
+ /* ---------- base (opt-in: add class="gy" to <body>) ---------- */
83
+ .gy{margin:0;color:var(--ink);background:var(--bg);font:400 16px/1.65 var(--f-body);-webkit-font-smoothing:antialiased}
84
+ .gy :focus-visible{outline:2px solid var(--accent);outline-offset:3px;box-shadow:0 0 0 7px color-mix(in oklch, var(--accent) 22%, transparent)}
85
+
86
+ /* ---------- material: 겹 ---------- */
87
+ .gy-gyeop{position:relative;isolation:isolate;background:color-mix(in oklch, var(--paper) var(--thick,74%), transparent);-webkit-backdrop-filter:blur(var(--blur,14px)) saturate(1.2);backdrop-filter:blur(var(--blur,14px)) saturate(1.2);border:1px solid color-mix(in oklch, var(--paper) 50%, var(--line));border-radius:var(--r-3);box-shadow:var(--shadow)}
88
+ .gy-gyeop::before{content:"";position:absolute;inset:0;border-radius:inherit;background-image:var(--grain);opacity:var(--grain-o);pointer-events:none;z-index:-1}
89
+ .gy-hol{--thick:46%;--blur:6px}
90
+ .gy-du {--thick:72%;--blur:14px}
91
+ .gy-se {--thick:90%;--blur:24px}
92
+
93
+ /* ---------- button ---------- */
94
+ .gy-btn{--bg-b:var(--accent);--fg-b:var(--on-accent);appearance:none;border:0;cursor:pointer;font:600 15px/1 var(--f-body);color:var(--fg-b);background:var(--bg-b);padding:13px 20px;border-radius:var(--r-2);display:inline-flex;align-items:center;gap:8px;text-decoration:none;transition:transform var(--t-1) var(--ease-bleed), box-shadow var(--t-3) var(--ease-bleed)}
95
+ .gy-btn:hover{box-shadow:0 0 0 1px var(--bg-b), 0 6px 22px -4px color-mix(in oklch, var(--bg-b) 60%, transparent)}
96
+ .gy-btn:active{transform:translateY(1px) scale(.985)}
97
+ .gy-btn--ink{--bg-b:var(--ink);--fg-b:var(--bg)}
98
+ .gy-btn--paper{--fg-b:var(--ink);background:color-mix(in oklch, var(--paper) 74%, transparent);border:1px solid var(--line);backdrop-filter:blur(12px)}
99
+ .gy-btn--paper:hover{box-shadow:0 6px 22px -8px color-mix(in oklch, var(--ink) 40%, transparent)}
100
+ .gy-btn--ghost{--fg-b:var(--accent);background:transparent}
101
+ .gy-btn--ghost:hover{background:color-mix(in oklch, var(--accent) 10%, transparent);box-shadow:none}
102
+ .gy-btn--danger{--bg-b:var(--err);--fg-b:oklch(99% 0 0)}
103
+ .gy-btn--sm{padding:9px 14px;font-size:14px;border-radius:10px}
104
+ .gy-btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}
105
+
106
+ /* ---------- switch: <button class="gy-switch" role="switch" aria-checked="true"> ---------- */
107
+ .gy-switch{appearance:none;border:0;cursor:pointer;width:50px;height:30px;border-radius:var(--r-pill);background:var(--line);position:relative;transition:background var(--t-2) var(--ease-bleed);flex:none}
108
+ .gy-switch::after{content:"";position:absolute;top:3px;left:3px;width:24px;height:24px;border-radius:50%;background:var(--paper);box-shadow:0 2px 6px oklch(0% 0 0 / .25);transition:transform var(--t-2) var(--ease-bleed)}
109
+ .gy-switch[aria-checked="true"]{background:var(--accent)}
110
+ .gy-switch[aria-checked="true"]::after{transform:translateX(20px);background:oklch(99% 0 0)}
111
+
112
+ /* ---------- segmented: buttons with aria-pressed ---------- */
113
+ .gy-seg{display:inline-flex;padding:4px;border-radius:var(--r-pill);background:color-mix(in oklch, var(--ink) 7%, transparent);gap:2px}
114
+ .gy-seg button{appearance:none;border:0;background:transparent;color:var(--ink-2);font:500 14px/1 var(--f-body);padding:8px 14px;border-radius:var(--r-pill);cursor:pointer}
115
+ .gy-seg button[aria-pressed="true"]{background:var(--paper);color:var(--ink);box-shadow:0 1px 3px oklch(0% 0 0 / .14)}
116
+
117
+ /* ---------- chip ---------- */
118
+ .gy-chip{appearance:none;cursor:pointer;border:1px solid var(--line);background:transparent;color:var(--ink-2);font:500 14px/1 var(--f-body);padding:8px 13px;border-radius:var(--r-pill)}
119
+ .gy-chip[aria-pressed="true"]{background:var(--accent-soft);border-color:transparent;color:var(--ink)}
120
+
121
+ /* ---------- field ---------- */
122
+ .gy-field{display:flex;flex-direction:column;gap:6px}
123
+ .gy-field label{font-size:13px;font-weight:500;color:var(--ink-2)}
124
+ .gy-field input,.gy-field textarea,.gy-field select{font:400 15px var(--f-body);color:var(--ink);background:color-mix(in oklch, var(--paper) 80%, transparent);border:1px solid var(--line);border-radius:var(--r-2);padding:11px 13px;transition:border-color var(--t-2), box-shadow var(--t-3) var(--ease-bleed)}
125
+ .gy-field :is(input,textarea,select):focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 5px color-mix(in oklch, var(--accent) 18%, transparent), 0 0 18px 2px color-mix(in oklch, var(--accent) 22%, transparent)}
126
+ .gy-field small{font-size:13px;color:var(--ink-3)}
127
+ .gy-field--error :is(input,textarea,select){border-color:var(--err)}
128
+ .gy-field--error small{color:var(--err)}
129
+
130
+ /* ---------- checkbox: <label class="gy-check"><input type="checkbox"> 텍스트</label> ---------- */
131
+ .gy-check{display:flex;gap:10px;align-items:center;font-size:15px;cursor:pointer}
132
+ .gy-check input{appearance:none;width:20px;height:20px;border-radius:6px;border:1.5px solid var(--ink-3);display:grid;place-items:center;margin:0;cursor:pointer}
133
+ .gy-check input:checked{background:var(--accent);border-color:var(--accent)}
134
+ .gy-check input:checked::after{content:"";width:9px;height:5px;border:2px solid var(--on-accent);border-top:0;border-right:0;transform:rotate(-45deg) translate(1px,-1px)}
135
+
136
+ /* ---------- badge ---------- */
137
+ .gy-badge{font:600 12px/1 var(--f-body);padding:7px 11px;border-radius:var(--r-pill);display:inline-flex;align-items:center;gap:5px;color:var(--accent);background:color-mix(in oklch, var(--accent) 13%, transparent)}
138
+ .gy-badge::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
139
+ .gy-badge--ok{color:var(--ok);background:color-mix(in oklch, var(--ok) 14%, transparent)}
140
+ .gy-badge--warn{color:var(--warn);background:color-mix(in oklch, var(--warn) 16%, transparent)}
141
+ .gy-badge--err{color:var(--err);background:color-mix(in oklch, var(--err) 14%, transparent)}
142
+
143
+ /* ---------- progress: <div class="gy-progress" style="--p:60%"><i></i></div> ---------- */
144
+ .gy-progress{height:8px;border-radius:var(--r-pill);background:color-mix(in oklch, var(--ink) 9%, transparent);overflow:hidden}
145
+ .gy-progress > i{display:block;height:100%;width:var(--p,0%);border-radius:inherit;background:linear-gradient(90deg, color-mix(in oklch, var(--accent) 50%, transparent), var(--accent))}
146
+
147
+ /* ---------- toast / tooltip ---------- */
148
+ .gy-toast{display:flex;align-items:center;gap:12px;padding:12px 16px;font-size:14.5px}
149
+ .gy-tooltip{font-size:13px;padding:7px 11px;border-radius:10px;background:var(--ink);color:var(--bg)}
150
+
151
+ @media (prefers-reduced-motion: reduce){.gy *,.gy *::before,.gy *::after{transition:none!important;animation:none!important}}
package/index.mjs CHANGED
@@ -254,11 +254,11 @@ const tokens = {
254
254
  },
255
255
  "ink": {
256
256
  "$type": "color",
257
- "$value": "#0e211d"
257
+ "$value": "#0d211d"
258
258
  },
259
259
  "ink-2": {
260
260
  "$type": "color",
261
- "$value": "#455350"
261
+ "$value": "#445450"
262
262
  },
263
263
  "ink-3": {
264
264
  "$type": "color",
@@ -266,7 +266,7 @@ const tokens = {
266
266
  },
267
267
  "line": {
268
268
  "$type": "color",
269
- "$value": "#c0ceca"
269
+ "$value": "#bfceca"
270
270
  },
271
271
  "paper": {
272
272
  "$type": "color",
@@ -274,11 +274,11 @@ const tokens = {
274
274
  },
275
275
  "accent": {
276
276
  "$type": "color",
277
- "$value": "#256e60"
277
+ "$value": "#2c7b6c"
278
278
  },
279
279
  "accent-soft": {
280
280
  "$type": "color",
281
- "$value": "#c7e6de"
281
+ "$value": "#c6e6de"
282
282
  },
283
283
  "on-accent": {
284
284
  "$type": "color",
@@ -286,7 +286,7 @@ const tokens = {
286
286
  },
287
287
  "stain": {
288
288
  "$type": "color",
289
- "$value": "#8bc4fa"
289
+ "$value": "#88c4fd"
290
290
  },
291
291
  "ok": {
292
292
  "$type": "color",
@@ -308,7 +308,7 @@ const tokens = {
308
308
  },
309
309
  "bg-2": {
310
310
  "$type": "color",
311
- "$value": "#0c1c18"
311
+ "$value": "#0b1c18"
312
312
  },
313
313
  "ink": {
314
314
  "$type": "color",
@@ -324,7 +324,7 @@ const tokens = {
324
324
  },
325
325
  "line": {
326
326
  "$type": "color",
327
- "$value": "#2b3935"
327
+ "$value": "#2a3935"
328
328
  },
329
329
  "paper": {
330
330
  "$type": "color",
@@ -332,11 +332,11 @@ const tokens = {
332
332
  },
333
333
  "accent": {
334
334
  "$type": "color",
335
- "$value": "#7bc1b1"
335
+ "$value": "#83cfbe"
336
336
  },
337
337
  "accent-soft": {
338
338
  "$type": "color",
339
- "$value": "#1b3c35"
339
+ "$value": "#193d35"
340
340
  },
341
341
  "on-accent": {
342
342
  "$type": "color",
@@ -344,7 +344,7 @@ const tokens = {
344
344
  },
345
345
  "stain": {
346
346
  "$type": "color",
347
- "$value": "#2a6192"
347
+ "$value": "#276194"
348
348
  },
349
349
  "ok": {
350
350
  "$type": "color",
@@ -960,39 +960,39 @@ const tokens = {
960
960
  "light": {
961
961
  "bg": {
962
962
  "$type": "color",
963
- "$value": "#edf6f5"
963
+ "$value": "#ebf6f6"
964
964
  },
965
965
  "bg-2": {
966
966
  "$type": "color",
967
- "$value": "#daeaea"
967
+ "$value": "#d6ebeb"
968
968
  },
969
969
  "ink": {
970
970
  "$type": "color",
971
- "$value": "#0b2121"
971
+ "$value": "#042222"
972
972
  },
973
973
  "ink-2": {
974
974
  "$type": "color",
975
- "$value": "#435353"
975
+ "$value": "#405454"
976
976
  },
977
977
  "ink-3": {
978
978
  "$type": "color",
979
- "$value": "#5a6666"
979
+ "$value": "#586766"
980
980
  },
981
981
  "line": {
982
982
  "$type": "color",
983
- "$value": "#becece"
983
+ "$value": "#bbcfcf"
984
984
  },
985
985
  "paper": {
986
986
  "$type": "color",
987
- "$value": "#f9fdfd"
987
+ "$value": "#f9fefd"
988
988
  },
989
989
  "accent": {
990
990
  "$type": "color",
991
- "$value": "#0f6e6e"
991
+ "$value": "#006364"
992
992
  },
993
993
  "accent-soft": {
994
994
  "$type": "color",
995
- "$value": "#c4e6e5"
995
+ "$value": "#bce8e7"
996
996
  },
997
997
  "on-accent": {
998
998
  "$type": "color",
@@ -1000,7 +1000,7 @@ const tokens = {
1000
1000
  },
1001
1001
  "stain": {
1002
1002
  "$type": "color",
1003
- "$value": "#9ebdff"
1003
+ "$value": "#98bcff"
1004
1004
  },
1005
1005
  "ok": {
1006
1006
  "$type": "color",
@@ -1018,39 +1018,39 @@ const tokens = {
1018
1018
  "dark": {
1019
1019
  "bg": {
1020
1020
  "$type": "color",
1021
- "$value": "#061212"
1021
+ "$value": "#041212"
1022
1022
  },
1023
1023
  "bg-2": {
1024
1024
  "$type": "color",
1025
- "$value": "#0a1c1c"
1025
+ "$value": "#051d1d"
1026
1026
  },
1027
1027
  "ink": {
1028
1028
  "$type": "color",
1029
- "$value": "#eaf0f0"
1029
+ "$value": "#e9f0f0"
1030
1030
  },
1031
1031
  "ink-2": {
1032
1032
  "$type": "color",
1033
- "$value": "#b2bdbd"
1033
+ "$value": "#b0bebd"
1034
1034
  },
1035
1035
  "ink-3": {
1036
1036
  "$type": "color",
1037
- "$value": "#96a1a1"
1037
+ "$value": "#94a1a1"
1038
1038
  },
1039
1039
  "line": {
1040
1040
  "$type": "color",
1041
- "$value": "#293938"
1041
+ "$value": "#263a39"
1042
1042
  },
1043
1043
  "paper": {
1044
1044
  "$type": "color",
1045
- "$value": "#202f2e"
1045
+ "$value": "#1c2f2f"
1046
1046
  },
1047
1047
  "accent": {
1048
1048
  "$type": "color",
1049
- "$value": "#70c1c1"
1049
+ "$value": "#45b5b5"
1050
1050
  },
1051
1051
  "accent-soft": {
1052
1052
  "$type": "color",
1053
- "$value": "#153c3c"
1053
+ "$value": "#033e3e"
1054
1054
  },
1055
1055
  "on-accent": {
1056
1056
  "$type": "color",
@@ -1058,7 +1058,7 @@ const tokens = {
1058
1058
  },
1059
1059
  "stain": {
1060
1060
  "$type": "color",
1061
- "$value": "#415b97"
1061
+ "$value": "#3c5aa1"
1062
1062
  },
1063
1063
  "ok": {
1064
1064
  "$type": "color",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gyeol",
3
- "version": "0.1.4",
3
+ "version": "0.1.5",
4
4
  "description": "결 gyeol — 한지를 겹겹이 올리는 디자인 시스템. CSS, Tailwind preset, DTCG design tokens.",
5
5
  "license": "MIT",
6
6
  "repository": {
package/tokens.json CHANGED
@@ -253,11 +253,11 @@
253
253
  },
254
254
  "ink": {
255
255
  "$type": "color",
256
- "$value": "#0e211d"
256
+ "$value": "#0d211d"
257
257
  },
258
258
  "ink-2": {
259
259
  "$type": "color",
260
- "$value": "#455350"
260
+ "$value": "#445450"
261
261
  },
262
262
  "ink-3": {
263
263
  "$type": "color",
@@ -265,7 +265,7 @@
265
265
  },
266
266
  "line": {
267
267
  "$type": "color",
268
- "$value": "#c0ceca"
268
+ "$value": "#bfceca"
269
269
  },
270
270
  "paper": {
271
271
  "$type": "color",
@@ -273,11 +273,11 @@
273
273
  },
274
274
  "accent": {
275
275
  "$type": "color",
276
- "$value": "#256e60"
276
+ "$value": "#2c7b6c"
277
277
  },
278
278
  "accent-soft": {
279
279
  "$type": "color",
280
- "$value": "#c7e6de"
280
+ "$value": "#c6e6de"
281
281
  },
282
282
  "on-accent": {
283
283
  "$type": "color",
@@ -285,7 +285,7 @@
285
285
  },
286
286
  "stain": {
287
287
  "$type": "color",
288
- "$value": "#8bc4fa"
288
+ "$value": "#88c4fd"
289
289
  },
290
290
  "ok": {
291
291
  "$type": "color",
@@ -307,7 +307,7 @@
307
307
  },
308
308
  "bg-2": {
309
309
  "$type": "color",
310
- "$value": "#0c1c18"
310
+ "$value": "#0b1c18"
311
311
  },
312
312
  "ink": {
313
313
  "$type": "color",
@@ -323,7 +323,7 @@
323
323
  },
324
324
  "line": {
325
325
  "$type": "color",
326
- "$value": "#2b3935"
326
+ "$value": "#2a3935"
327
327
  },
328
328
  "paper": {
329
329
  "$type": "color",
@@ -331,11 +331,11 @@
331
331
  },
332
332
  "accent": {
333
333
  "$type": "color",
334
- "$value": "#7bc1b1"
334
+ "$value": "#83cfbe"
335
335
  },
336
336
  "accent-soft": {
337
337
  "$type": "color",
338
- "$value": "#1b3c35"
338
+ "$value": "#193d35"
339
339
  },
340
340
  "on-accent": {
341
341
  "$type": "color",
@@ -343,7 +343,7 @@
343
343
  },
344
344
  "stain": {
345
345
  "$type": "color",
346
- "$value": "#2a6192"
346
+ "$value": "#276194"
347
347
  },
348
348
  "ok": {
349
349
  "$type": "color",
@@ -959,39 +959,39 @@
959
959
  "light": {
960
960
  "bg": {
961
961
  "$type": "color",
962
- "$value": "#edf6f5"
962
+ "$value": "#ebf6f6"
963
963
  },
964
964
  "bg-2": {
965
965
  "$type": "color",
966
- "$value": "#daeaea"
966
+ "$value": "#d6ebeb"
967
967
  },
968
968
  "ink": {
969
969
  "$type": "color",
970
- "$value": "#0b2121"
970
+ "$value": "#042222"
971
971
  },
972
972
  "ink-2": {
973
973
  "$type": "color",
974
- "$value": "#435353"
974
+ "$value": "#405454"
975
975
  },
976
976
  "ink-3": {
977
977
  "$type": "color",
978
- "$value": "#5a6666"
978
+ "$value": "#586766"
979
979
  },
980
980
  "line": {
981
981
  "$type": "color",
982
- "$value": "#becece"
982
+ "$value": "#bbcfcf"
983
983
  },
984
984
  "paper": {
985
985
  "$type": "color",
986
- "$value": "#f9fdfd"
986
+ "$value": "#f9fefd"
987
987
  },
988
988
  "accent": {
989
989
  "$type": "color",
990
- "$value": "#0f6e6e"
990
+ "$value": "#006364"
991
991
  },
992
992
  "accent-soft": {
993
993
  "$type": "color",
994
- "$value": "#c4e6e5"
994
+ "$value": "#bce8e7"
995
995
  },
996
996
  "on-accent": {
997
997
  "$type": "color",
@@ -999,7 +999,7 @@
999
999
  },
1000
1000
  "stain": {
1001
1001
  "$type": "color",
1002
- "$value": "#9ebdff"
1002
+ "$value": "#98bcff"
1003
1003
  },
1004
1004
  "ok": {
1005
1005
  "$type": "color",
@@ -1017,39 +1017,39 @@
1017
1017
  "dark": {
1018
1018
  "bg": {
1019
1019
  "$type": "color",
1020
- "$value": "#061212"
1020
+ "$value": "#041212"
1021
1021
  },
1022
1022
  "bg-2": {
1023
1023
  "$type": "color",
1024
- "$value": "#0a1c1c"
1024
+ "$value": "#051d1d"
1025
1025
  },
1026
1026
  "ink": {
1027
1027
  "$type": "color",
1028
- "$value": "#eaf0f0"
1028
+ "$value": "#e9f0f0"
1029
1029
  },
1030
1030
  "ink-2": {
1031
1031
  "$type": "color",
1032
- "$value": "#b2bdbd"
1032
+ "$value": "#b0bebd"
1033
1033
  },
1034
1034
  "ink-3": {
1035
1035
  "$type": "color",
1036
- "$value": "#96a1a1"
1036
+ "$value": "#94a1a1"
1037
1037
  },
1038
1038
  "line": {
1039
1039
  "$type": "color",
1040
- "$value": "#293938"
1040
+ "$value": "#263a39"
1041
1041
  },
1042
1042
  "paper": {
1043
1043
  "$type": "color",
1044
- "$value": "#202f2e"
1044
+ "$value": "#1c2f2f"
1045
1045
  },
1046
1046
  "accent": {
1047
1047
  "$type": "color",
1048
- "$value": "#70c1c1"
1048
+ "$value": "#45b5b5"
1049
1049
  },
1050
1050
  "accent-soft": {
1051
1051
  "$type": "color",
1052
- "$value": "#153c3c"
1052
+ "$value": "#033e3e"
1053
1053
  },
1054
1054
  "on-accent": {
1055
1055
  "$type": "color",
@@ -1057,7 +1057,7 @@
1057
1057
  },
1058
1058
  "stain": {
1059
1059
  "$type": "color",
1060
- "$value": "#415b97"
1060
+ "$value": "#3c5aa1"
1061
1061
  },
1062
1062
  "ok": {
1063
1063
  "$type": "color",