lucentia-ui 0.1.5 → 0.1.7

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/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright 2026 Lucentia UI
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -23,7 +23,7 @@ yarn add lucentia-ui
23
23
  - React 18+
24
24
  - CSS Modules 対応環境(Next.js / Vite / CRA など)
25
25
 
26
- ## 基本の使い方(必須)
26
+ ## 基本の使い方
27
27
 
28
28
  ### 1.ThemeProvider をアプリのルートに配置
29
29
 
@@ -37,7 +37,8 @@ export default function App() {
37
37
  }
38
38
  ```
39
39
 
40
- ### 利用可能なテーマ
40
+
41
+ ## 利用可能なテーマ
41
42
 
42
43
  ```ts
43
44
  type Theme = "light" | "dark";
@@ -47,6 +48,16 @@ type Theme = "light" | "dark";
47
48
  <ThemeProvider theme="dark">
48
49
  ```
49
50
 
51
+ ## 追加CSSのFont.css、Base.cssの導入は任意
52
+ - `base` : reset, box-sizing, typography base, color tokens
53
+ - `font` : Noto Sans JP font-face definitions
54
+
55
+ ```tsx
56
+ import "lucentia-ui/styles/base";
57
+ import "lucentia-ui/styles/font";
58
+ ```
59
+
60
+
50
61
  ### 2.コンポーネントをそのまま使う
51
62
 
52
63
  ```tsx
@@ -63,10 +74,9 @@ export default function Example() {
63
74
  }
64
75
  ```
65
76
 
66
- - 追加の CSS import は不要
67
77
  - ThemeProvider 配下であればスタイルは自動適用
68
78
 
69
- ### なぜ ThemeProvider が必要なのか?
79
+ ### ThemeProvider は必須
70
80
 
71
81
  lucentia-ui のコンポーネントは
72
82
  CSS Variables(Design Tokens) に依存しています。
@@ -86,7 +96,7 @@ ThemeProvider は:
86
96
 
87
97
  という役割を持ちます。
88
98
 
89
- ### テーマ切り替え例
99
+ ### テーマ切り替え例(Next.js)
90
100
 
91
101
  ```tsx
92
102
  import { useState } from "react";
@@ -105,6 +115,8 @@ export default function App() {
105
115
  }
106
116
  ```
107
117
 
118
+
119
+
108
120
  ## コンポーネント設計方針
109
121
 
110
122
  - **HTML ネイティブ要素を尊重**
@@ -122,9 +134,9 @@ export default function App() {
122
134
  - Input
123
135
  - Select
124
136
  - Switch
137
+ - Textarea
125
138
  - Modal
126
139
 
127
- 詳細は **Storybook** を参照してください。
128
140
 
129
141
  ---
130
142
 
@@ -136,14 +148,6 @@ export default function App() {
136
148
  - **CSS の上書きは非推奨**
137
149
  (Tokens 拡張を想定)
138
150
 
139
- ---
140
-
141
- ## 将来予定
142
-
143
- - system theme 対応
144
- - Theme 拡張 API
145
- - アニメーション Token
146
- - a11y 強化
147
151
 
148
152
  ---
149
153
 
@@ -16,6 +16,10 @@
16
16
  background: var(--color-surface-container);
17
17
  color: var(--color-on-surface);
18
18
  }
19
+ .default:hover:not(:disabled) {
20
+ border: 2px solid var(--color-border);
21
+ box-shadow: 0 0 4px var(--color-border), 0 0 8px var(--color-border);
22
+ }
19
23
 
20
24
  .primary {
21
25
  background: var(--color-primary-container);
@@ -52,7 +56,7 @@
52
56
  .sm {
53
57
  padding: var(--space-xs) var(--space-lg);
54
58
  font-size: 0.875rem;
55
- box-shadow: var(--shadow-sm);
59
+ box-shadow: var(--shadow-sm);
56
60
  }
57
61
 
58
62
  .md {
@@ -73,6 +77,6 @@
73
77
  }
74
78
 
75
79
  .button:disabled {
76
- opacity: 0.25;
80
+ opacity: 0.5;
77
81
  cursor: not-allowed;
78
82
  }
@@ -1,7 +1,7 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
2
  import { useState } from "react";
3
3
  import { Modal } from "./Modal";
4
- import { Button } from "../Button/Button";
4
+ import { Button } from "../../Button/Button";
5
5
  const meta = {
6
6
  title: "Components/Feedback/Modal",
7
7
  component: Modal,
@@ -10,6 +10,11 @@ export default meta;
10
10
  export const Default = {
11
11
  render: () => {
12
12
  const [open, setOpen] = useState(false);
13
- return (_jsxs(_Fragment, { children: [_jsx(Button, { onClick: () => setOpen(true), children: "Open Modal" }), _jsx(Modal, { open: open, onClose: () => setOpen(false), children: _jsxs("div", { style: { display: "flex", flexDirection: "column", alignItems: "center", gap: 32 }, children: [_jsx("h2", { children: "Modal Title" }), _jsx("p", { children: "This is a modal content." }), _jsx(Button, { onClick: () => setOpen(false), children: "Close" })] }) })] }));
13
+ return (_jsxs(_Fragment, { children: [_jsx(Button, { onClick: () => setOpen(true), children: "Open Modal" }), _jsx(Modal, { open: open, onClose: () => setOpen(false), children: _jsxs("div", { style: {
14
+ display: "flex",
15
+ flexDirection: "column",
16
+ alignItems: "center",
17
+ gap: 32,
18
+ }, children: [_jsx("h2", { children: "Modal Title" }), _jsx("p", { children: "This is a modal content." }), _jsx(Button, { onClick: () => setOpen(false), children: "Close" })] }) })] }));
14
19
  },
15
20
  };
@@ -4,8 +4,6 @@
4
4
  border-radius: var(--radius-sm);
5
5
  border: 2px solid var(--color-surface);
6
6
  outline: none;
7
- box-shadow: var(--shadow-md-in);
8
-
9
7
  background: var(--color-surface-container);
10
8
  color: var(--color-on-surface);
11
9
 
@@ -18,6 +16,17 @@
18
16
  border: 2px solid var(--color-primary);
19
17
  }
20
18
 
19
+
20
+ /* ===== Readonly ===== */
21
+ .input:read-only:not(:disabled) {
22
+ box-shadow: none;
23
+ cursor: text;
24
+ }
25
+
26
+ .input:read-only:not(:disabled) :focus {
27
+ border: 2px solid var(--color-surface);
28
+ }
29
+
21
30
  /* ===== Error ===== */
22
31
  .error {
23
32
  border: 2px solid var(--color-error);
@@ -31,12 +40,13 @@
31
40
 
32
41
  /* ===== size ===== */
33
42
  .sm {
34
- padding: var(--space-sm) var(--space-md);
35
43
  font-size: 0.875rem;
44
+ padding: var(--space-sm) var(--space-md);
36
45
  box-shadow: var(--shadow-sm-in);
37
46
  }
38
47
 
39
48
  .md {
40
- padding: var(--space-md) var(--space-lg);
41
49
  font-size: 1rem;
50
+ padding: var(--space-md) var(--space-lg);
51
+ box-shadow: var(--shadow-md-in);
42
52
  }
@@ -12,7 +12,12 @@ export const Default = {
12
12
  };
13
13
  export const State = {
14
14
  render: () => {
15
- return (_jsxs("div", { style: { display: "flex", flexDirection: "column", alignItems: "flex-start", gap: 32 }, children: [_jsx(Input, { placeholder: "Default State", state: "default" }), _jsx(Input, { placeholder: "Error State", state: "error" }), _jsx(Input, { placeholder: "Disabled State", disabled: true })] }));
15
+ return (_jsxs("div", { style: {
16
+ display: "flex",
17
+ flexDirection: "column",
18
+ alignItems: "flex-start",
19
+ gap: 32,
20
+ }, children: [_jsx(Input, { placeholder: "Default State", state: "default" }), _jsx(Input, { placeholder: "Error State", state: "error" }), _jsx(Input, { placeholder: "Readonly State", readOnly: true }), _jsx(Input, { placeholder: "Disabled State", disabled: true })] }));
16
21
  },
17
22
  };
18
23
  export const Size = {
@@ -24,6 +24,16 @@
24
24
  border: 2px solid var(--color-error);
25
25
  }
26
26
 
27
+ /* ===== Readonly ===== */
28
+ .textarea:read-only {
29
+ box-shadow: none;
30
+ cursor: text;
31
+ }
32
+
33
+ .textarea:read-only:focus {
34
+ border: 2px solid var(--color-surface);
35
+ }
36
+
27
37
  /* ===== Disabled ===== */
28
38
  .textarea:disabled {
29
39
  opacity: 0.5;
@@ -49,7 +49,7 @@
49
49
  --color-on-surface-variant: #161d1d80;
50
50
  --color-surface-container: #e9efeebf;
51
51
 
52
- --color-border: #6f7979;
52
+ --color-border: #bbcccc;
53
53
  --color-scrim: rgba(129, 129, 129, 0.25);
54
54
 
55
55
  --color-shadow-l: rgba(255, 255, 255, 1);
@@ -58,11 +58,11 @@
58
58
  /* ===== Effect ===== */
59
59
  --blur: blur(8px);
60
60
 
61
- --shadow-sm: -1px -1px 2px 1px var(--color-shadow-l),
62
- 1px 1px 2px 1px var(--color-shadow-d);
61
+ --shadow-sm: -2px -2px 2px 1px var(--color-shadow-l),
62
+ 2px 2px 2px 1px var(--color-shadow-d);
63
63
 
64
- --shadow-sm-in: inset -2px -2px 2px var(--color-shadow-l),
65
- inset 2px 2px 2px var(--color-shadow-d);
64
+ --shadow-sm-in: inset -2px -2px 2px 1px var(--color-shadow-l),
65
+ inset 2px 2px 2px 1px var(--color-shadow-d);
66
66
 
67
67
  --shadow-md: -2px -2px 4px 2px var(--color-shadow-l),
68
68
  2px 2px 4px 2px var(--color-shadow-d);
@@ -107,14 +107,14 @@
107
107
  /* ===== Effect ===== */
108
108
  --blur: blur(8px);
109
109
 
110
- --shadow-sm: -1px -1px 2px 1px var(--color-shadow-l),
111
- 1px 1px 2px 1px var(--color-shadow-d);
110
+ --shadow-sm: -2px -2px 2px 1px var(--color-shadow-l),
111
+ 2px 2px 2px 1px var(--color-shadow-d);
112
112
 
113
- --shadow-sm-in: inset -2px -2px 2px var(--color-shadow-l),
114
- inset 2px 2px 2px var(--color-shadow-d);
113
+ --shadow-sm-in: inset -2px -2px 2px 1px var(--color-shadow-l),
114
+ inset 2px 2px 2px 1px var(--color-shadow-d);
115
115
 
116
116
  --shadow-md: -2px -2px 4px 2px var(--color-shadow-l),
117
- 2px 2px 4px 4px var(--color-shadow-d);
117
+ 2px 2px 4px 2px var(--color-shadow-d);
118
118
 
119
119
  --shadow-md-in: inset -4px -4px 4px var(--color-shadow-l),
120
120
  inset 4px 4px 4px var(--color-shadow-d);
package/dist/index.d.ts CHANGED
@@ -7,4 +7,4 @@ export * from "./components/Input";
7
7
  export * from "./components/Textarea";
8
8
  export * from "./components/Select";
9
9
  export * from "./components/Switch";
10
- export * from "./components/Modal";
10
+ export * from "./components/Feedback/Modal";
package/dist/index.js CHANGED
@@ -8,4 +8,4 @@ export * from "./components/Input";
8
8
  export * from "./components/Textarea";
9
9
  export * from "./components/Select";
10
10
  export * from "./components/Switch";
11
- export * from "./components/Modal";
11
+ export * from "./components/Feedback/Modal";
@@ -0,0 +1,107 @@
1
+ /* ------------------------------
2
+ Reset / Base
3
+ ------------------------------ */
4
+
5
+ /* box-sizing を全要素に適用 */
6
+ *,
7
+ *::before,
8
+ *::after {
9
+ box-sizing: border-box;
10
+ }
11
+
12
+ /* マージン・パディングをリセット */
13
+ html,
14
+ body,
15
+ h1,
16
+ h2,
17
+ h3,
18
+ h4,
19
+ h5,
20
+ h6,
21
+ p,
22
+ figure,
23
+ blockquote,
24
+ dl,
25
+ dd {
26
+ margin: 0;
27
+ padding: 0;
28
+ }
29
+
30
+ /* html / body 基本設定 */
31
+ html {
32
+ -webkit-text-size-adjust: 100%;
33
+ text-size-adjust: 100%;
34
+ }
35
+
36
+ body {
37
+ line-height: 1.5;
38
+ font-family: var(--font, system-ui, -apple-system, sans-serif);
39
+ color: var(--color-on-background, #161d1d);
40
+ background-color: var(--color-background, #f4fbfa);
41
+ padding: 0;
42
+ }
43
+
44
+ /* リスト */
45
+ ul,
46
+ ol {
47
+ list-style: none;
48
+ margin: 0;
49
+ padding: 0;
50
+ }
51
+
52
+ /* リンク */
53
+ a {
54
+ color: inherit;
55
+ text-decoration: none;
56
+ }
57
+
58
+ /* 画像・メディア */
59
+ img,
60
+ picture,
61
+ video,
62
+ canvas,
63
+ svg {
64
+ display: block;
65
+ max-width: 100%;
66
+ }
67
+
68
+ /* フォーム要素 */
69
+ button,
70
+ input,
71
+ select,
72
+ textarea {
73
+ font: inherit;
74
+ color: inherit;
75
+ background: none;
76
+ border: none;
77
+ outline: none;
78
+ }
79
+
80
+ /* button */
81
+ button {
82
+ cursor: pointer;
83
+ }
84
+
85
+ /* textarea */
86
+ textarea {
87
+ resize: vertical;
88
+ }
89
+
90
+ input::placeholder,
91
+ textarea::placeholder {
92
+ color: var(--color-on-surface-variant, #161D1D80);
93
+ opacity: 1;
94
+ }
95
+
96
+
97
+ /* テーブル */
98
+ table {
99
+ border-collapse: collapse;
100
+ border-spacing: 0;
101
+ }
102
+
103
+ /* アクセシビリティ */
104
+ :focus-visible {
105
+ outline: 2px solid var(--color-primary, #00a1a1);
106
+ outline-offset: 2px;
107
+ }
@@ -1,6 +1,6 @@
1
1
  @font-face {
2
2
  font-family: "Noto Sans JP";
3
- src: url("/fonts/NotoSansJP-Regular.woff2") format("woff2");
3
+ src: url("../fonts/NotoSansJP-Regular.woff2") format("woff2");
4
4
  font-weight: 400;
5
5
  font-style: normal;
6
6
  font-display: swap;
@@ -8,7 +8,7 @@
8
8
 
9
9
  @font-face {
10
10
  font-family: "Noto Sans JP";
11
- src: url("/fonts/NotoSansJP-Medium.woff2") format("woff2");
11
+ src: url("../fonts/NotoSansJP-Medium.woff2") format("woff2");
12
12
  font-weight: 500;
13
13
  font-style: normal;
14
14
  font-display: swap;
@@ -16,7 +16,7 @@
16
16
 
17
17
  @font-face {
18
18
  font-family: "Noto Sans JP";
19
- src: url("/fonts/NotoSansJP-Bold.woff2") format("woff2");
19
+ src: url("../fonts/NotoSansJP-Bold.woff2") format("woff2");
20
20
  font-weight: 600;
21
21
  font-style: normal;
22
22
  font-display: swap;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lucentia-ui",
3
- "version": "0.1.5",
3
+ "version": "0.1.7",
4
4
  "description": "React UI design token and component system based on neumorphism, featuring two color themes: light and dark.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -8,7 +8,9 @@
8
8
  ".": {
9
9
  "import": "./dist/index.js",
10
10
  "types": "./dist/index.d.ts"
11
- }
11
+ },
12
+ "./styles/base": "./dist/styles/base.css",
13
+ "./styles/font": "./dist/styles/font.css"
12
14
  },
13
15
  "files": [
14
16
  "dist",
File without changes
@@ -1,106 +0,0 @@
1
- /* ------------------------------
2
- Reset / Base
3
- ------------------------------ */
4
-
5
- /* box-sizing を全要素に適用 */
6
- *,
7
- *::before,
8
- *::after {
9
- box-sizing: border-box;
10
- }
11
-
12
- /* マージン・パディングをリセット */
13
- html,
14
- body,
15
- h1,
16
- h2,
17
- h3,
18
- h4,
19
- h5,
20
- h6,
21
- p,
22
- figure,
23
- blockquote,
24
- dl,
25
- dd {
26
- margin: 0;
27
- padding: 0;
28
- }
29
-
30
- /* html / body 基本設定 */
31
- html {
32
- -webkit-text-size-adjust: 100%;
33
- text-size-adjust: 100%;
34
- }
35
-
36
- body {
37
- line-height: 1.5;
38
- font-family: var(--font, system-ui, -apple-system, sans-serif);
39
- color: var(--color-text, #000);
40
- background-color: var(--color-background, #fff);
41
- }
42
-
43
- /* リスト */
44
- ul,
45
- ol {
46
- list-style: none;
47
- margin: 0;
48
- padding: 0;
49
- }
50
-
51
- /* リンク */
52
- a {
53
- color: inherit;
54
- text-decoration: none;
55
- }
56
-
57
- /* 画像・メディア */
58
- img,
59
- picture,
60
- video,
61
- canvas,
62
- svg {
63
- display: block;
64
- max-width: 100%;
65
- }
66
-
67
- /* フォーム要素 */
68
- button,
69
- input,
70
- select,
71
- textarea {
72
- font: inherit;
73
- color: inherit;
74
- background: none;
75
- border: none;
76
- outline: none;
77
- }
78
-
79
- /* button */
80
- button {
81
- cursor: pointer;
82
- }
83
-
84
- /* textarea */
85
- textarea {
86
- resize: vertical;
87
- }
88
-
89
- input::placeholder,
90
- textarea::placeholder {
91
- color: var(--color-on-surface-variant, #161D1D80);
92
- opacity: 1;
93
- }
94
-
95
-
96
- /* テーブル */
97
- table {
98
- border-collapse: collapse;
99
- border-spacing: 0;
100
- }
101
-
102
- /* アクセシビリティ */
103
- :focus-visible {
104
- outline: 2px solid var(--color-primary, #00a1a1);
105
- outline-offset: 2px;
106
- }
@@ -1,2 +0,0 @@
1
- @import "./theme-light.css";
2
- @import "./theme-dark.css";
@@ -1,58 +0,0 @@
1
- .theme.dark {
2
- --color-primary: #80d5d4;
3
- --color-on-primary: #003737;
4
- --color-primary-container: #004f4f;
5
- --color-on-primary-container: #9cf1f0;
6
-
7
- --color-secondary: #b0cccb;
8
- --color-on-secondary: #1b3534;
9
- --color-secondary-container: #324b4b;
10
- --color-on-secondary-container: #cce8e7;
11
-
12
- --color-error: #ffb4ab;
13
- --color-on-error: #690005;
14
- --color-error-container: #93000a;
15
- --color-on-error-container: #ffdad6;
16
-
17
- --color-background: #2b3a38;
18
- --color-on-background: #dde4e3;
19
-
20
- --color-surface: #1a2120bf;
21
- --color-on-surface: #dde4e3;
22
-
23
- --color-surface-container: #262d2d;
24
- --color-border: #889392;
25
- --color-scrim: rgba(0, 0, 0, 0.1);
26
-
27
- --color-shadow-l: rgba(255, 255, 255, 0.25);
28
- --color-shadow-d: rgba(0, 0, 0, 1);
29
-
30
- --shadow-md: -2px -2px 4px 2px var(--color-shadow-l),
31
- 2px 2px 4px 4px var(--color-shadow-d);
32
-
33
- --shadow-md-in: inset -4px -4px 4px var(--color-shadow-l),
34
- inset 4px 4px 4px var(--color-shadow-d);
35
-
36
- --shadow-lg: -4px -4px 16px 8px var(--color-shadow-l),
37
- 4px 4px 16px 8px var(--color-shadow-d);
38
-
39
- /* ===== Radius ===== */
40
- --radius-sm: 8px;
41
- --radius-md: 16px;
42
- --radius-max: 999px;
43
-
44
- /* ===== Space ===== */
45
- --space-xs: 4px;
46
- --space-sm: 8px;
47
- --space-md: 12px;
48
- --space-lg: 16px;
49
- --space-xl: 24px;
50
- --space-2xl: 32px;
51
- --space-3xl: 48px;
52
- --space-4xl: 64px;
53
- --space-5xl: 96px;
54
- --gap: 32px;
55
-
56
- /* ===== Layout ===== */
57
- --container: 1120px;
58
- }
@@ -1,65 +0,0 @@
1
- .theme.light {
2
- /* font */
3
- --font: "Noto Sans JP", sans-serif;
4
-
5
- /* ===== Color ===== */
6
- --color-primary: #00a1a1;
7
- --color-on-primary: #ffffff;
8
- --color-primary-container: #9cf1f0;
9
- --color-on-primary-container: #004f4f;
10
-
11
- --color-secondary: #7b9695;
12
- --color-on-secondary: #ffffff;
13
- --color-secondary-container: #cce8e7;
14
- --color-on-secondary-container: #324b4b;
15
-
16
- --color-error: #ff5449;
17
- --color-on-error: #ffffff;
18
- --color-error-container: #ffdad6;
19
- --color-on-error-container: #93000a;
20
-
21
- --color-background: #f4fbfa;
22
- --color-on-background: #161d1d;
23
-
24
- --color-surface: #f4fbfabf;
25
- --color-on-surface: #161d1d;
26
- --color-surface-container: #e9efeebf;
27
-
28
- --color-border: #6f7979;
29
- --color-scrim: rgba(129, 129, 129, 0.25);
30
-
31
- /* ===== Effect ===== */
32
- --blur: blur(8px);
33
-
34
- --color-shadow-l: rgba(255, 255, 255, 1);
35
- --color-shadow-d: rgba(0, 0, 0, 0.2);
36
-
37
- --shadow-md: -2px -2px 4px 2px var(--color-shadow-l),
38
- 2px 2px 4px 2px var(--color-shadow-d);
39
-
40
- --shadow-md-in: inset -4px -4px 4px var(--color-shadow-l),
41
- inset 4px 4px 4px var(--color-shadow-d);
42
-
43
- --shadow-lg: -4px -4px 16px 8px var(--color-shadow-l),
44
- 4px 4px 16px 8px var(--color-shadow-d);
45
-
46
- /* ===== Radius ===== */
47
- --radius-sm: 8px;
48
- --radius-md: 16px;
49
- --radius-max: 999px;
50
-
51
- /* ===== Space ===== */
52
- --space-xs: 4px;
53
- --space-sm: 8px;
54
- --space-md: 12px;
55
- --space-lg: 16px;
56
- --space-xl: 24px;
57
- --space-2xl: 32px;
58
- --space-3xl: 48px;
59
- --space-4xl: 64px;
60
- --space-5xl: 96px;
61
- --gap: 32px;
62
-
63
- /* ===== Layout ===== */
64
- --container: 1120px;
65
- }
@@ -1,107 +0,0 @@
1
- :root {
2
- /* font */
3
- --font: "Noto Sans JP", sans-serif;
4
-
5
- /* ===== Color ===== */
6
- --color-primary: #00a1a1;
7
- --color-on-primary: #ffffff;
8
- --color-primary-container: #9cf1f0;
9
- --color-on-primary-container: #004f4f;
10
-
11
- --color-secondary: #7b9695;
12
- --color-on-secondary: #ffffff;
13
- --color-secondary-container: #cce8e7;
14
- --color-on-secondary-container: #324b4b;
15
-
16
- --color-error: #ff5449;
17
- --color-on-error: #ffffff;
18
- --color-error-container: #ffdad6;
19
- --color-on-error-container: #93000a;
20
-
21
- --color-background: #f4fbfa;
22
- --color-on-background: #161d1d;
23
-
24
- --color-surface: #f4fbfabf;
25
- --color-on-surface: #161d1d;
26
- --color-on-surface-variant: #161d1d80;
27
- --color-surface-container: #e9efeebf;
28
-
29
- --color-border: #6f7979;
30
- --color-scrim: rgba(129, 129, 129, 0.25);
31
-
32
- /* ===== Effect ===== */
33
- --blur: blur(8px);
34
-
35
- --color-shadow-l: rgba(255, 255, 255, 1);
36
- --color-shadow-d: rgba(0, 0, 0, 0.2);
37
-
38
- --shadow-md: -2px -2px 4px 2px var(--color-shadow-l),
39
- 2px 2px 4px 2px var(--color-shadow-d);
40
-
41
- --shadow-md-in: inset -4px -4px 4px var(--color-shadow-l),
42
- inset 4px 4px 4px var(--color-shadow-d);
43
-
44
- --shadow-lg: -4px -4px 16px 8px var(--color-shadow-l),
45
- 4px 4px 16px 8px var(--color-shadow-d);
46
-
47
- /* ===== Radius ===== */
48
- --radius-sm: 8px;
49
- --radius-md: 16px;
50
- --radius-max: 999px;
51
-
52
- /* ===== Space ===== */
53
- --space-xs: 4px;
54
- --space-sm: 8px;
55
- --space-md: 12px;
56
- --space-lg: 16px;
57
- --space-xl: 24px;
58
- --space-2xl: 32px;
59
- --space-3xl: 48px;
60
- --space-4xl: 64px;
61
- --space-5xl: 96px;
62
- --gap: 32px;
63
-
64
- /* ===== Layout ===== */
65
- --container: 1120px;
66
- }
67
-
68
- .dark {
69
- --color-primary: #80d5d4;
70
- --color-on-primary: #003737;
71
- --color-primary-container: #004f4f;
72
- --color-on-primary-container: #9cf1f0;
73
-
74
- --color-secondary: #b0cccb;
75
- --color-on-secondary: #1b3534;
76
- --color-secondary-container: #324b4b;
77
- --color-on-secondary-container: #cce8e7;
78
-
79
- --color-error: #ffb4ab;
80
- --color-on-error: #690005;
81
- --color-error-container: #93000a;
82
- --color-on-error-container: #ffdad6;
83
-
84
- --color-background: #2b3a38;
85
- --color-on-background: #dde4e3;
86
-
87
- --color-surface: #1a2120bf;
88
- --color-on-surface: #dde4e3;
89
- --color-on-surface-variant: #dde4e380;
90
- --color-surface-container: #262d2d;
91
-
92
- --color-border: #889392;
93
-
94
- --color-shadow-l: rgba(255, 255, 255, 0.25);
95
- --color-shadow-d: rgba(0, 0, 0, 1);
96
-
97
- --shadow-md: -2px -2px 4px 2px var(--color-shadow-l),
98
- 2px 2px 4px 4px var(--color-shadow-d);
99
-
100
- --shadow-md-in: inset -4px -4px 4px var(--color-shadow-l),
101
- inset 4px 4px 4px var(--color-shadow-d);
102
-
103
- --shadow-lg: -4px -4px 16px 8px var(--color-shadow-l),
104
- 4px 4px 16px 8px var(--color-shadow-d);
105
-
106
- --color-scrim: rgba(0, 0, 0, 0.1);
107
- }