fiboui 1.0.0

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.
Files changed (141) hide show
  1. package/README.md +101 -0
  2. package/dist/content/Alert/index.d.ts +878 -0
  3. package/dist/content/Avatar/index.d.ts +886 -0
  4. package/dist/content/Badge/index.d.ts +887 -0
  5. package/dist/content/Image/index.d.ts +893 -0
  6. package/dist/content/Label/index.d.ts +879 -0
  7. package/dist/content/Progress/index.d.ts +898 -0
  8. package/dist/content/Skeleton/index.d.ts +879 -0
  9. package/dist/content/Spinner/index.d.ts +880 -0
  10. package/dist/content/Text/index.d.ts +878 -0
  11. package/dist/content/index.d.ts +9 -0
  12. package/dist/core/StateWrapper.d.ts +28 -0
  13. package/dist/core/builder.d.ts +50 -0
  14. package/dist/core/component.d.ts +7 -0
  15. package/dist/core/effects.d.ts +3 -0
  16. package/dist/core/icons.d.ts +11 -0
  17. package/dist/core/index.d.ts +5 -0
  18. package/dist/core/state.d.ts +37 -0
  19. package/dist/core/types.d.ts +51 -0
  20. package/dist/demo.d.ts +7 -0
  21. package/dist/effects-Co9C_Dyx.mjs +9 -0
  22. package/dist/examples/ScaffoldExamples.d.ts +3 -0
  23. package/dist/examples/StateExamples.d.ts +5 -0
  24. package/dist/index.d.ts +6 -0
  25. package/dist/index.esm.js +4622 -0
  26. package/dist/index.umd.js +251 -0
  27. package/dist/interactive/Button/index.d.ts +897 -0
  28. package/dist/interactive/Checkbox/index.d.ts +884 -0
  29. package/dist/interactive/Combobox/index.d.ts +898 -0
  30. package/dist/interactive/RadioGroup/index.d.ts +888 -0
  31. package/dist/interactive/Select/index.d.ts +895 -0
  32. package/dist/interactive/Switch/index.d.ts +881 -0
  33. package/dist/interactive/TextField/index.d.ts +892 -0
  34. package/dist/interactive/Textarea/index.d.ts +890 -0
  35. package/dist/interactive/index.d.ts +8 -0
  36. package/dist/layout/Center/index.d.ts +869 -0
  37. package/dist/layout/Column/index.d.ts +881 -0
  38. package/dist/layout/Container/index.d.ts +870 -0
  39. package/dist/layout/DashboardLayout/index.d.ts +870 -0
  40. package/dist/layout/Header/index.d.ts +870 -0
  41. package/dist/layout/Line/index.d.ts +872 -0
  42. package/dist/layout/Row/index.d.ts +879 -0
  43. package/dist/layout/Scaffold/index.d.ts +878 -0
  44. package/dist/layout/ScrollView/index.d.ts +879 -0
  45. package/dist/layout/Sidebar/index.d.ts +870 -0
  46. package/dist/layout/Spacer/index.d.ts +875 -0
  47. package/dist/layout/StakentComponents.d.ts +4 -0
  48. package/dist/layout/index.d.ts +11 -0
  49. package/dist/structure/Banner/index.d.ts +879 -0
  50. package/dist/structure/Box/index.d.ts +869 -0
  51. package/dist/structure/Card/index.d.ts +881 -0
  52. package/dist/structure/Collapse/index.d.ts +884 -0
  53. package/dist/structure/Grid/index.d.ts +1757 -0
  54. package/dist/structure/List/index.d.ts +888 -0
  55. package/dist/structure/Table/index.d.ts +895 -0
  56. package/dist/structure/Tags/index.d.ts +876 -0
  57. package/dist/structure/cards/AssetCard/index.d.ts +884 -0
  58. package/dist/structure/cards/CollectionCard/index.d.ts +880 -0
  59. package/dist/structure/cards/ContentCard/index.d.ts +884 -0
  60. package/dist/structure/cards/ProfileCard/index.d.ts +892 -0
  61. package/dist/structure/cards/index.d.ts +5 -0
  62. package/dist/structure/cards/variants/index.d.ts +3490 -0
  63. package/dist/structure/index.d.ts +9 -0
  64. package/dist/style.css +1 -0
  65. package/dist/theme/cupertino.d.ts +3 -0
  66. package/dist/theme/index.d.ts +5 -0
  67. package/dist/theme/material.d.ts +3 -0
  68. package/dist/theme/provider.d.ts +16 -0
  69. package/dist/theme/types.d.ts +57 -0
  70. package/dist/theme/web.d.ts +3 -0
  71. package/package.json +54 -0
  72. package/src/content/Alert/index.ts +110 -0
  73. package/src/content/Avatar/index.ts +116 -0
  74. package/src/content/Badge/index.ts +162 -0
  75. package/src/content/Image/index.ts +137 -0
  76. package/src/content/Label/index.ts +66 -0
  77. package/src/content/Progress/index.ts +378 -0
  78. package/src/content/Skeleton/index.ts +71 -0
  79. package/src/content/Spinner/index.ts +139 -0
  80. package/src/content/Text/index.ts +74 -0
  81. package/src/content/index.ts +9 -0
  82. package/src/core/StateWrapper.tsx +105 -0
  83. package/src/core/builder.ts +259 -0
  84. package/src/core/component.ts +49 -0
  85. package/src/core/effects.ts +27 -0
  86. package/src/core/icons.tsx +57 -0
  87. package/src/core/index.ts +5 -0
  88. package/src/core/state.ts +233 -0
  89. package/src/core/types.ts +62 -0
  90. package/src/demo.tsx +1045 -0
  91. package/src/examples/ScaffoldExamples.tsx +299 -0
  92. package/src/examples/StateExamples.tsx +149 -0
  93. package/src/index.ts +8 -0
  94. package/src/interactive/Button/index.ts +218 -0
  95. package/src/interactive/Checkbox/index.ts +145 -0
  96. package/src/interactive/Combobox/index.ts +278 -0
  97. package/src/interactive/RadioGroup/index.ts +124 -0
  98. package/src/interactive/Select/index.ts +227 -0
  99. package/src/interactive/Switch/index.ts +123 -0
  100. package/src/interactive/TextField/index.ts +200 -0
  101. package/src/interactive/Textarea/index.ts +129 -0
  102. package/src/interactive/index.ts +8 -0
  103. package/src/layout/Center/index.ts +34 -0
  104. package/src/layout/Column/index.ts +101 -0
  105. package/src/layout/Container/index.ts +28 -0
  106. package/src/layout/DashboardLayout/index.ts +106 -0
  107. package/src/layout/Header/index.ts +50 -0
  108. package/src/layout/Line/index.ts +41 -0
  109. package/src/layout/Row/index.ts +93 -0
  110. package/src/layout/Scaffold/index.ts +133 -0
  111. package/src/layout/ScrollView/index.ts +67 -0
  112. package/src/layout/Sidebar/index.ts +56 -0
  113. package/src/layout/Spacer/index.ts +46 -0
  114. package/src/layout/StakentComponents.tsx +57 -0
  115. package/src/layout/index.ts +11 -0
  116. package/src/structure/Banner/index.ts +92 -0
  117. package/src/structure/Box/index.ts +45 -0
  118. package/src/structure/Card/index.ts +113 -0
  119. package/src/structure/Collapse/index.ts +122 -0
  120. package/src/structure/Grid/index.ts +197 -0
  121. package/src/structure/List/index.ts +185 -0
  122. package/src/structure/Table/index.ts +165 -0
  123. package/src/structure/Tags/index.ts +69 -0
  124. package/src/structure/cards/AssetCard/index.ts +158 -0
  125. package/src/structure/cards/CollectionCard/index.ts +95 -0
  126. package/src/structure/cards/ContentCard/index.ts +127 -0
  127. package/src/structure/cards/ProfileCard/index.ts +152 -0
  128. package/src/structure/cards/index.ts +5 -0
  129. package/src/structure/cards/variants/index.ts +301 -0
  130. package/src/structure/index.ts +10 -0
  131. package/src/styles/base.css +186 -0
  132. package/src/styles/core.css +52 -0
  133. package/src/styles/themes/cupertino.css +197 -0
  134. package/src/styles/themes/material.css +322 -0
  135. package/src/styles/themes/web.css +196 -0
  136. package/src/theme/cupertino.ts +85 -0
  137. package/src/theme/index.ts +5 -0
  138. package/src/theme/material.ts +86 -0
  139. package/src/theme/provider.tsx +76 -0
  140. package/src/theme/types.ts +62 -0
  141. package/src/theme/web.ts +82 -0
@@ -0,0 +1,197 @@
1
+
2
+
3
+ :root:has(.fibo-theme-cupertino),
4
+ .fibo-theme-cupertino {
5
+
6
+ --fibo-primary: #007AFF;
7
+ --fibo-on-primary: #FFFFFF;
8
+ --fibo-primary-container: rgba(0, 122, 255, 0.15);
9
+ --fibo-on-primary-container: #007AFF;
10
+
11
+ --fibo-secondary: #5856D6;
12
+ --fibo-on-secondary: #FFFFFF;
13
+
14
+
15
+ --fibo-background: #F2F2F7;
16
+ --fibo-on-background: #000000;
17
+
18
+ --fibo-surface: #FFFFFF;
19
+ --fibo-on-surface: #000000;
20
+ --fibo-surface-variant: #E5E5EA;
21
+ --fibo-on-surface-variant: #8E8E93;
22
+
23
+ --fibo-error: #FF3B30;
24
+
25
+ --fibo-outline: #C7C7CC;
26
+
27
+
28
+ --fibo-font-family: -apple-system, BlinkMacSystemFont, 'SF Pro Text', sans-serif;
29
+
30
+
31
+ --fibo-radius-xs: 6px;
32
+ --fibo-radius-sm: 8px;
33
+ --fibo-radius-md: 10px;
34
+ --fibo-radius-lg: 13px;
35
+ --fibo-radius-xl: 20px;
36
+ --fibo-radius-full: 9999px;
37
+
38
+
39
+ --fibo-elevation-1: 0 1px 3px rgba(0,0,0,0.05);
40
+ --fibo-elevation-2: 0 4px 12px rgba(0,0,0,0.1);
41
+ --fibo-elevation-3: 0 12px 32px rgba(0,0,0,0.15);
42
+
43
+
44
+ --fibo-transition-duration: 400ms;
45
+ --fibo-transition-easing: cubic-bezier(0.25, 0.1, 0.25, 1);
46
+ }
47
+
48
+
49
+
50
+
51
+ .fibo-theme-cupertino .fibo-button {
52
+ font-family: var(--fibo-font-family);
53
+ font-size: 17px;
54
+ letter-spacing: -0.4px;
55
+ font-weight: 500;
56
+ height: 44px;
57
+ border-radius: 12px;
58
+ }
59
+
60
+
61
+ .fibo-theme-cupertino .fibo-button-filled {
62
+ background-color: var(--fibo-primary);
63
+ color: var(--fibo-on-primary);
64
+ border-radius: var(--fibo-radius-full);
65
+ padding: 14px 24px;
66
+ font-weight: 600;
67
+ }
68
+ .fibo-theme-cupertino .fibo-button-filled:active {
69
+ opacity: 0.7;
70
+ transform: scale(0.98);
71
+ }
72
+
73
+
74
+ .fibo-theme-cupertino .fibo-card {
75
+ background-color: var(--fibo-surface);
76
+ border-radius: var(--fibo-radius-md);
77
+ box-shadow: none;
78
+ border: 1px solid rgba(60, 60, 67, 0.1);
79
+ padding: 16px;
80
+ }
81
+
82
+
83
+ .fibo-theme-cupertino .fibo-textfield-container {
84
+ display: flex;
85
+ flex-direction: column;
86
+ margin-bottom: 1rem;
87
+ }
88
+
89
+ .fibo-theme-cupertino .fibo-textfield-input {
90
+ width: 100%;
91
+ font-family: inherit;
92
+ font-size: 17px;
93
+ border: 1px solid var(--fibo-outline);
94
+ background-color: var(--fibo-surface);
95
+ transition: all 200ms ease;
96
+ outline: none;
97
+ border-radius: var(--fibo-radius-md);
98
+ padding: 12px 16px;
99
+ }
100
+
101
+ .fibo-theme-cupertino .fibo-textfield-input:focus {
102
+ border-color: var(--fibo-primary);
103
+ }
104
+
105
+ .fibo-theme-cupertino .fibo-textfield-label {
106
+ margin-bottom: 4px;
107
+ font-size: 13px;
108
+ font-weight: 500;
109
+ color: var(--fibo-on-surface-variant);
110
+ text-transform: uppercase;
111
+ }
112
+
113
+
114
+ .fibo-theme-cupertino .fibo-tag {
115
+ display: inline-flex;
116
+ align-items: center;
117
+ justify-content: center;
118
+ white-space: nowrap;
119
+ padding: 4px 10px;
120
+ border-radius: var(--fibo-radius-full);
121
+ font-size: 13px;
122
+ font-weight: 600;
123
+ color: var(--fibo-on-surface-variant);
124
+ }
125
+
126
+
127
+ .fibo-theme-cupertino .fibo-banner {
128
+ border-radius: var(--fibo-radius-lg);
129
+ padding: 12px 16px;
130
+ background-color: var(--fibo-surface-variant);
131
+ border-left: 3px solid transparent;
132
+ backdrop-filter: blur(10px);
133
+ }
134
+ .fibo-theme-cupertino .fibo-banner-success { border-left-color: #34C759; background-color: rgba(52, 199, 89, 0.1); color: #000; }
135
+ .fibo-theme-cupertino .fibo-banner-warning { border-left-color: #FF9500; background-color: rgba(255, 149, 0, 0.1); color: #000; }
136
+ .fibo-theme-cupertino .fibo-banner-error { border-left-color: #FF3B30; background-color: rgba(255, 59, 48, 0.1); color: #000; }
137
+ .fibo-theme-cupertino .fibo-banner-info { border-left-color: #007AFF; background-color: rgba(0, 122, 255, 0.1); color: #000; }
138
+
139
+
140
+ .fibo-theme-cupertino .fibo-list {
141
+ background-color: var(--fibo-surface);
142
+ border-radius: var(--fibo-radius-md);
143
+ overflow: hidden;
144
+ }
145
+ .fibo-theme-cupertino .fibo-list-item {
146
+ display: flex;
147
+ align-items: center;
148
+ gap: 12px;
149
+ padding: 12px 16px;
150
+ background-color: var(--fibo-surface);
151
+ border-bottom: 0.5px solid var(--fibo-outline);
152
+ cursor: pointer;
153
+ }
154
+ .fibo-theme-cupertino .fibo-list-item:active {
155
+ background-color: var(--fibo-surface-variant);
156
+ }
157
+ .fibo-theme-cupertino .fibo-list-item:last-child {
158
+ border-bottom: none;
159
+ }
160
+
161
+
162
+ .fibo-theme-cupertino .fibo-table {
163
+ width: 100%;
164
+ border-collapse: separate;
165
+ border-spacing: 0;
166
+ background-color: transparent;
167
+ }
168
+ .fibo-theme-cupertino .fibo-table th {
169
+ text-align: left;
170
+ padding: 8px 16px;
171
+ font-size: 13px;
172
+ text-transform: uppercase;
173
+ color: var(--fibo-on-surface-variant);
174
+ font-weight: 500;
175
+ background-color: transparent;
176
+ border-bottom: 1px solid var(--fibo-outline);
177
+ }
178
+ .fibo-theme-cupertino .fibo-table td {
179
+ padding: 12px 16px;
180
+ background-color: var(--fibo-surface);
181
+ border-bottom: 0.5px solid var(--fibo-outline);
182
+ font-size: 17px;
183
+ }
184
+ .fibo-theme-cupertino .fibo-table tr:first-child td:first-child { border-top-left-radius: 10px; }
185
+ .fibo-theme-cupertino .fibo-table tr:first-child td:last-child { border-top-right-radius: 10px; }
186
+ .fibo-theme-cupertino .fibo-table tr:last-child td:first-child { border-bottom-left-radius: 10px; border-bottom: none; }
187
+ .fibo-theme-cupertino .fibo-table tr:last-child td:last-child { border-bottom-right-radius: 10px; border-bottom: none; }
188
+
189
+
190
+ .fibo-theme-cupertino .fibo-text-h1 { font-size: 34px; font-weight: 700; letter-spacing: 0.37px; }
191
+ .fibo-theme-cupertino .fibo-text-h2 { font-size: 28px; font-weight: 700; letter-spacing: 0.36px; }
192
+ .fibo-theme-cupertino .fibo-text-h3 { font-size: 22px; font-weight: 700; letter-spacing: 0.35px; }
193
+ .fibo-theme-cupertino .fibo-text-h4 { font-size: 20px; font-weight: 600; letter-spacing: 0.38px; }
194
+ .fibo-theme-cupertino .fibo-text-h5 { font-size: 17px; font-weight: 600; letter-spacing: -0.41px; }
195
+ .fibo-theme-cupertino .fibo-text-h6 { font-size: 15px; font-weight: 600; letter-spacing: -0.24px; }
196
+ .fibo-theme-cupertino .fibo-text-body { font-size: 17px; font-weight: 400; letter-spacing: -0.41px; }
197
+ .fibo-theme-cupertino .fibo-text-caption { font-size: 13px; font-weight: 400; color: var(--fibo-on-surface-variant); }
@@ -0,0 +1,322 @@
1
+
2
+
3
+ :root:has(.fibo-theme-material),
4
+ .fibo-theme-material {
5
+
6
+ --fibo-primary: #6750A4;
7
+ --fibo-on-primary: #FFFFFF;
8
+ --fibo-primary-container: #EADDFF;
9
+ --fibo-on-primary-container: #21005D;
10
+
11
+ --fibo-secondary: #625B71;
12
+ --fibo-on-secondary: #FFFFFF;
13
+ --fibo-secondary-container: #E8DEF8;
14
+ --fibo-on-secondary-container: #1D192B;
15
+
16
+ --fibo-tertiary: #7D5260;
17
+ --fibo-on-tertiary: #FFFFFF;
18
+ --fibo-tertiary-container: #FFD8E4;
19
+ --fibo-on-tertiary-container: #31111D;
20
+
21
+ --fibo-error: #B3261E;
22
+ --fibo-on-error: #FFFFFF;
23
+
24
+ --fibo-background: #FFFBFE;
25
+ --fibo-on-background: #1C1B1F;
26
+
27
+ --fibo-surface: #FFFBFE;
28
+ --fibo-on-surface: #1C1B1F;
29
+ --fibo-surface-variant: #E7E0EC;
30
+ --fibo-on-surface-variant: #49454F;
31
+
32
+ --fibo-outline: #79747E;
33
+
34
+
35
+ --fibo-font-family: 'Roboto', sans-serif;
36
+
37
+
38
+ --fibo-radius-xs: 4px;
39
+ --fibo-radius-sm: 8px;
40
+ --fibo-radius-md: 12px;
41
+ --fibo-radius-lg: 16px;
42
+ --fibo-radius-xl: 28px;
43
+ --fibo-radius-full: 9999px;
44
+
45
+
46
+ --fibo-elevation-1: 0px 1px 2px rgba(0,0,0,0.3), 0px 1px 3px 1px rgba(0,0,0,0.15);
47
+ --fibo-elevation-2: 0px 1px 2px rgba(0,0,0,0.3), 0px 2px 6px 2px rgba(0,0,0,0.15);
48
+ --fibo-elevation-3: 0px 4px 8px 3px rgba(0,0,0,0.15), 0px 1px 3px rgba(0,0,0,0.3);
49
+
50
+
51
+ --fibo-hover-opacity: 0.08;
52
+ --fibo-focus-opacity: 0.12;
53
+ --fibo-press-opacity: 0.12;
54
+
55
+
56
+ --fibo-transition-duration: 250ms;
57
+ --fibo-transition-easing: cubic-bezier(0.4, 0.0, 0.2, 1);
58
+ }
59
+
60
+
61
+
62
+
63
+ .fibo-theme-material .fibo-button {
64
+ font-family: var(--fibo-font-family);
65
+ text-transform: uppercase;
66
+ letter-spacing: 0.1em;
67
+ font-weight: 500;
68
+ font-size: 0.875rem;
69
+ height: 40px;
70
+ border-radius: 20px;
71
+ border-radius: 9999px;
72
+ padding: 0 24px;
73
+ }
74
+
75
+
76
+ .fibo-theme-material .fibo-button-filled,
77
+ .fibo-theme-material .fibo-button-elevated {
78
+ background-color: var(--fibo-primary);
79
+ color: var(--fibo-on-primary);
80
+ box-shadow: var(--fibo-elevation-1);
81
+ }
82
+ .fibo-theme-material .fibo-button-filled:hover {
83
+ box-shadow: var(--fibo-elevation-2);
84
+ }
85
+ .fibo-theme-material .fibo-button-filled::after {
86
+ content: "";
87
+ position: absolute;
88
+ inset: 0;
89
+ background-color: var(--fibo-on-primary);
90
+ opacity: 0;
91
+ transition: opacity 0.2s;
92
+ }
93
+ .fibo-theme-material .fibo-button-filled:hover::after {
94
+ opacity: var(--fibo-hover-opacity);
95
+ }
96
+
97
+
98
+ .fibo-theme-material .fibo-card {
99
+ background-color: var(--fibo-surface);
100
+ border-radius: var(--fibo-radius-md);
101
+ border: 1px solid var(--fibo-outline);
102
+
103
+ border: none;
104
+ background-color: var(--fibo-surface-container-low, #F7F2FA);
105
+ box-shadow: var(--fibo-elevation-1);
106
+ padding: 16px;
107
+ }
108
+
109
+
110
+ .fibo-theme-material .fibo-textfield-container {
111
+ display: flex;
112
+ flex-direction: column;
113
+ position: relative;
114
+ margin-bottom: 1rem;
115
+ }
116
+
117
+ .fibo-theme-material .fibo-textfield-input {
118
+ width: 100%;
119
+ font-family: inherit;
120
+ font-size: 1rem;
121
+ border: 1px solid var(--fibo-outline);
122
+ background-color: transparent;
123
+ transition: all var(--fibo-transition-duration);
124
+ outline: none;
125
+ border-radius: var(--fibo-radius-xs);
126
+ padding: 1rem 1rem;
127
+ }
128
+
129
+ .fibo-theme-material .fibo-textfield-label {
130
+ position: absolute;
131
+ left: 1rem;
132
+ top: 1rem;
133
+ font-size: 1rem;
134
+ color: var(--fibo-on-surface-variant);
135
+ pointer-events: none;
136
+ transition: all var(--fibo-transition-duration);
137
+ background-color: transparent;
138
+ background-color: transparent;
139
+ padding: 0 4px;
140
+ }
141
+
142
+ .fibo-theme-material .fibo-textfield-input::placeholder {
143
+ opacity: 0;
144
+ transition: opacity var(--fibo-transition-duration);
145
+ }
146
+
147
+ .fibo-theme-material .fibo-textfield-input:focus::placeholder {
148
+ opacity: 1;
149
+ }
150
+
151
+ .fibo-theme-material .fibo-textfield-input:focus {
152
+ border-color: var(--fibo-primary);
153
+ border-width: 2px;
154
+ padding: calc(1rem - 1px);
155
+ }
156
+
157
+ .fibo-theme-material .fibo-textfield-input:focus ~ .fibo-textfield-label,
158
+ .fibo-theme-material .fibo-textfield-input:not(:placeholder-shown) ~ .fibo-textfield-label {
159
+ top: -0.5rem;
160
+ left: 0.75rem;
161
+ font-size: 0.75rem;
162
+ color: var(--fibo-primary);
163
+ background-color: var(--fibo-surface);
164
+ }
165
+
166
+
167
+ .fibo-theme-material .fibo-textarea-container {
168
+ display: flex;
169
+ flex-direction: column;
170
+ position: relative;
171
+ margin-bottom: 1rem;
172
+ margin-top: 0.5rem;
173
+ }
174
+
175
+ .fibo-theme-material .fibo-textarea-input {
176
+ width: 100%;
177
+ font-family: inherit;
178
+ font-size: 1rem;
179
+ border: 1px solid var(--fibo-outline);
180
+ background-color: transparent;
181
+ transition: all var(--fibo-transition-duration);
182
+ outline: none;
183
+ border-radius: var(--fibo-radius-xs);
184
+ padding: 1rem 1rem;
185
+ }
186
+
187
+ .fibo-theme-material .fibo-textarea-label {
188
+ position: absolute;
189
+ left: 1rem;
190
+ top: 1rem;
191
+ font-size: 1rem;
192
+ color: var(--fibo-on-surface-variant);
193
+ pointer-events: none;
194
+ transition: all var(--fibo-transition-duration);
195
+ background-color: transparent;
196
+ padding: 0 4px;
197
+ }
198
+
199
+ .fibo-theme-material .fibo-textarea-input::placeholder {
200
+ opacity: 0;
201
+ transition: opacity var(--fibo-transition-duration);
202
+ }
203
+ .fibo-theme-material .fibo-textarea-input:focus::placeholder {
204
+ opacity: 1;
205
+ }
206
+
207
+ .fibo-theme-material .fibo-textarea-input:focus {
208
+ border-color: var(--fibo-primary);
209
+ border-width: 2px;
210
+ padding: calc(1rem - 1px);
211
+ }
212
+
213
+ .fibo-theme-material .fibo-textarea-input:focus ~ .fibo-textarea-label,
214
+ .fibo-theme-material .fibo-textarea-input:not(:placeholder-shown) ~ .fibo-textarea-label {
215
+ top: -0.5rem;
216
+ left: 0.75rem;
217
+ font-size: 0.75rem;
218
+ color: var(--fibo-primary);
219
+ background-color: var(--fibo-surface);
220
+ }
221
+
222
+
223
+ .fibo-theme-material .fibo-tag {
224
+ display: inline-flex;
225
+ align-items: center;
226
+ justify-content: center;
227
+ font-weight: 500;
228
+ white-space: nowrap;
229
+ height: 32px;
230
+ border-radius: 8px;
231
+ padding: 0 12px;
232
+ font-size: 0.875rem;
233
+ background-color: var(--fibo-surface-variant);
234
+ color: var(--fibo-on-surface-variant);
235
+ border: 1px solid transparent;
236
+ }
237
+
238
+
239
+ .fibo-theme-material .fibo-banner {
240
+ border-radius: var(--fibo-radius-sm);
241
+ border-left: 4px solid;
242
+ padding: 16px;
243
+ background-color: var(--fibo-surface-variant);
244
+ }
245
+ .fibo-theme-material .fibo-banner-success {
246
+ background-color: #E8F5E9;
247
+ border-color: #2E7D32;
248
+ color: #1B5E20;
249
+ }
250
+ .fibo-theme-material .fibo-banner-warning {
251
+ background-color: #FFF3E0;
252
+ border-color: #EF6C00;
253
+ color: #E65100;
254
+ }
255
+ .fibo-theme-material .fibo-banner-error {
256
+ background-color: #FFEBEE;
257
+ border-color: #C62828;
258
+ color: #B71C1C;
259
+ }
260
+ .fibo-theme-material .fibo-banner-info {
261
+ background-color: #E3F2FD;
262
+ border-color: #1565C0;
263
+ color: #0D47A1;
264
+ }
265
+
266
+
267
+ .fibo-theme-material .fibo-list {
268
+ background-color: var(--fibo-surface);
269
+ border-radius: var(--fibo-radius-sm);
270
+ overflow: hidden;
271
+ }
272
+ .fibo-theme-material .fibo-list-item {
273
+ display: flex;
274
+ align-items: center;
275
+ gap: 16px;
276
+ padding: 12px 16px;
277
+ border-bottom: 1px solid var(--fibo-outline);
278
+ cursor: pointer;
279
+ transition: background-color var(--fibo-transition-duration);
280
+ }
281
+ .fibo-theme-material .fibo-list-item:hover {
282
+ background-color: rgba(0, 0, 0, 0.04);
283
+ }
284
+ .fibo-theme-material .fibo-list-item:last-child {
285
+ border-bottom: none;
286
+ }
287
+
288
+
289
+ .fibo-theme-material .fibo-table {
290
+ width: 100%;
291
+ border-collapse: collapse;
292
+ background-color: var(--fibo-surface);
293
+ box-shadow: var(--fibo-elevation-1);
294
+ border-radius: var(--fibo-radius-sm);
295
+ overflow: hidden;
296
+ }
297
+ .fibo-theme-material .fibo-table th {
298
+ text-align: left;
299
+ padding: 16px;
300
+ background-color: var(--fibo-surface);
301
+ border-bottom: 1px solid var(--fibo-outline);
302
+ font-weight: 500;
303
+ color: var(--fibo-on-surface-variant);
304
+ }
305
+ .fibo-theme-material .fibo-table td {
306
+ padding: 16px;
307
+ border-bottom: 1px solid var(--fibo-outline);
308
+ color: var(--fibo-on-surface);
309
+ }
310
+ .fibo-theme-material .fibo-table tr:hover {
311
+ background-color: rgba(0, 0, 0, 0.02);
312
+ }
313
+
314
+
315
+ .fibo-theme-material .fibo-text-h1 { font-size: 96px; letter-spacing: -1.5px; font-weight: 300; }
316
+ .fibo-theme-material .fibo-text-h2 { font-size: 60px; letter-spacing: -0.5px; font-weight: 300; }
317
+ .fibo-theme-material .fibo-text-h3 { font-size: 48px; letter-spacing: 0px; font-weight: 400; }
318
+ .fibo-theme-material .fibo-text-h4 { font-size: 34px; letter-spacing: 0.25px; font-weight: 400; }
319
+ .fibo-theme-material .fibo-text-h5 { font-size: 24px; letter-spacing: 0px; font-weight: 400; }
320
+ .fibo-theme-material .fibo-text-h6 { font-size: 20px; letter-spacing: 0.15px; font-weight: 500; }
321
+ .fibo-theme-material .fibo-text-body { font-size: 16px; letter-spacing: 0.5px; font-weight: 400; }
322
+ .fibo-theme-material .fibo-text-caption { font-size: 12px; letter-spacing: 0.4px; font-weight: 400; color: var(--fibo-on-surface-variant); }
@@ -0,0 +1,196 @@
1
+
2
+
3
+ :root:has(.fibo-theme-web),
4
+ .fibo-theme-web {
5
+
6
+ --fibo-primary: #3B82F6;
7
+ --fibo-on-primary: #FFFFFF;
8
+ --fibo-primary-container: #DBEAFE;
9
+ --fibo-on-primary-container: #1E40AF;
10
+
11
+ --fibo-secondary: #64748B;
12
+ --fibo-on-secondary: #FFFFFF;
13
+
14
+ --fibo-background: #F8FAFC;
15
+ --fibo-on-background: #0F172A;
16
+
17
+ --fibo-surface: #FFFFFF;
18
+ --fibo-on-surface: #0F172A;
19
+
20
+ --fibo-outline: #E2E8F0;
21
+
22
+
23
+ --fibo-font-family: 'Inter', system-ui, sans-serif;
24
+
25
+
26
+ --fibo-radius-xs: 2px;
27
+ --fibo-radius-sm: 4px;
28
+ --fibo-radius-md: 6px;
29
+ --fibo-radius-lg: 8px;
30
+ --fibo-radius-xl: 12px;
31
+ --fibo-radius-full: 9999px;
32
+
33
+
34
+ --fibo-elevation-1: 0 1px 2px 0 rgb(0 0 0 / 0.05);
35
+ --fibo-elevation-2: 0 4px 6px -1px rgb(0 0 0 / 0.1);
36
+ --fibo-elevation-3: 0 10px 15px -3px rgb(0 0 0 / 0.1);
37
+ }
38
+
39
+
40
+
41
+ .fibo-theme-web .fibo-button {
42
+ font-family: var(--fibo-font-family);
43
+ font-weight: 500;
44
+ font-size: 0.875rem;
45
+ padding: 0.5rem 1rem;
46
+ border-radius: var(--fibo-radius-md);
47
+ transition: all 150ms ease;
48
+ }
49
+
50
+ .fibo-theme-web .fibo-button-filled {
51
+ background-color: var(--fibo-primary);
52
+ color: var(--fibo-on-primary);
53
+ }
54
+ .fibo-theme-web .fibo-button-filled:hover {
55
+ background-color: #2563EB;
56
+ box-shadow: var(--fibo-elevation-2);
57
+ }
58
+
59
+ .fibo-theme-web .fibo-card {
60
+ background-color: var(--fibo-surface);
61
+ border: 1px solid var(--fibo-outline);
62
+ border-radius: var(--fibo-radius-lg);
63
+ box-shadow: var(--fibo-elevation-1);
64
+ padding: 1.5rem;
65
+ }
66
+
67
+
68
+ .fibo-theme-web .fibo-textfield-container {
69
+ display: flex;
70
+ flex-direction: column-reverse;
71
+ margin-bottom: 1rem;
72
+ }
73
+
74
+ .fibo-theme-web .fibo-textfield-input {
75
+ width: 100%;
76
+ font-family: inherit;
77
+ font-size: 0.875rem;
78
+ border: 1px solid var(--fibo-outline);
79
+ background-color: var(--fibo-surface);
80
+ transition: all 150ms ease;
81
+ outline: none;
82
+ border-radius: var(--fibo-radius-md);
83
+ padding: 0.625rem 1rem;
84
+ }
85
+
86
+ .fibo-theme-web .fibo-textfield-input:focus {
87
+ border-color: var(--fibo-primary);
88
+ box-shadow: 0 0 0 2px var(--fibo-primary-container);
89
+
90
+
91
+ font-weight: 500;
92
+ color: var(--fibo-on-surface);
93
+ }
94
+
95
+
96
+ .fibo-theme-web .fibo-textarea-container {
97
+ display: flex;
98
+ flex-direction: column-reverse;
99
+ margin-bottom: 1rem;
100
+ }
101
+
102
+ .fibo-theme-web .fibo-textarea-input {
103
+ width: 100%;
104
+ font-family: inherit;
105
+ font-size: 0.875rem;
106
+ border: 1px solid var(--fibo-outline);
107
+ background-color: var(--fibo-surface);
108
+ transition: all 150ms ease;
109
+ outline: none;
110
+ border-radius: var(--fibo-radius-md);
111
+ padding: 0.625rem 1rem;
112
+ min-height: 80px;
113
+ }
114
+
115
+ .fibo-theme-web .fibo-textarea-input:focus {
116
+ border-color: var(--fibo-primary);
117
+ box-shadow: 0 0 0 2px var(--fibo-primary-container);
118
+ }
119
+
120
+ .fibo-theme-web .fibo-textarea-label {
121
+ margin-bottom: 0.375rem;
122
+ font-size: 0.875rem;
123
+ font-weight: 500;
124
+ color: var(--fibo-on-surface);
125
+ }
126
+
127
+
128
+ background-color: var(--fibo-primary-container);
129
+ color: var(--fibo-on-primary-container);
130
+
131
+
132
+
133
+ .fibo-theme-web .fibo-banner {
134
+ border-radius: var(--fibo-radius-md);
135
+ border-left: 4px solid;
136
+ padding: 1rem;
137
+ background-color: var(--fibo-surface);
138
+ box-shadow: var(--fibo-elevation-1);
139
+ }
140
+ .fibo-theme-web .fibo-banner-success { border-color: #10B981; background-color: #ECFDF5; color: #065F46; }
141
+ .fibo-theme-web .fibo-banner-warning { border-color: #F59E0B; background-color: #FFFBEB; color: #92400E; }
142
+ .fibo-theme-web .fibo-banner-error { border-color: #EF4444; background-color: #FEF2F2; color: #991B1B; }
143
+ .fibo-theme-web .fibo-banner-info { border-color: #3B82F6; background-color: #EFF6FF; color: #1E40AF; }
144
+
145
+
146
+ .fibo-theme-web .fibo-list {
147
+ background-color: var(--fibo-surface);
148
+ border: 1px solid var(--fibo-outline);
149
+ border-radius: var(--fibo-radius-md);
150
+ overflow: hidden;
151
+ }
152
+ .fibo-theme-web .fibo-list-item {
153
+ display: flex;
154
+ align-items: center;
155
+ gap: 1rem;
156
+ padding: 0.75rem 1rem;
157
+ border-bottom: 1px solid var(--fibo-outline);
158
+ }
159
+ .fibo-theme-web .fibo-list-item:hover {
160
+ background-color: #F8FAFC;
161
+ }
162
+ .fibo-theme-web .fibo-list-item:last-child {
163
+ border-bottom: none;
164
+ }
165
+
166
+
167
+ .fibo-theme-web .fibo-table {
168
+ width: 100%;
169
+ border-collapse: collapse;
170
+ text-align: left;
171
+ }
172
+ .fibo-theme-web .fibo-table th {
173
+ padding: 0.75rem 1.5rem;
174
+ background-color: #F8FAFC;
175
+ font-weight: 600;
176
+ text-transform: uppercase;
177
+ font-size: 0.75rem;
178
+ letter-spacing: 0.05em;
179
+ color: var(--fibo-on-surface-variant);
180
+ border-bottom: 1px solid var(--fibo-outline);
181
+ }
182
+ .fibo-theme-web .fibo-table td {
183
+ padding: 1rem 1.5rem;
184
+ border-bottom: 1px solid var(--fibo-outline);
185
+ color: var(--fibo-on-surface);
186
+ }
187
+
188
+
189
+ .fibo-theme-web .fibo-text-h1 { font-size: 2.25rem; font-weight: 800; letter-spacing: -0.025em; }
190
+ .fibo-theme-web .fibo-text-h2 { font-size: 1.875rem; font-weight: 700; letter-spacing: -0.025em; }
191
+ .fibo-theme-web .fibo-text-h3 { font-size: 1.5rem; font-weight: 600; letter-spacing: -0.025em; }
192
+ .fibo-theme-web .fibo-text-h4 { font-size: 1.25rem; font-weight: 600; }
193
+ .fibo-theme-web .fibo-text-h5 { font-size: 1.125rem; font-weight: 600; }
194
+ .fibo-theme-web .fibo-text-h6 { font-size: 1rem; font-weight: 600; }
195
+ .fibo-theme-web .fibo-text-body { font-size: 1rem; color: #374151; }
196
+ .fibo-theme-web .fibo-text-caption { font-size: 0.875rem; color: #6B7280; }