@duskmoon-dev/core 1.7.0 → 1.8.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.
package/README.md CHANGED
@@ -33,7 +33,9 @@ pnpm add @duskmoon-dev/core tailwindcss@^4.0.0
33
33
 
34
34
  ## Quick Start
35
35
 
36
- ### 1. Import the plugin in your CSS
36
+ ### 1. Add DuskMoonUI to your CSS
37
+
38
+ #### Option A: CSS `@import` (recommended)
37
39
 
38
40
  ```css
39
41
  /* src/styles.css */
@@ -41,6 +43,16 @@ pnpm add @duskmoon-dev/core tailwindcss@^4.0.0
41
43
  @import "@duskmoon-dev/core";
42
44
  ```
43
45
 
46
+ #### Option B: Tailwind `@plugin` directive
47
+
48
+ ```css
49
+ /* src/styles.css */
50
+ @import "tailwindcss";
51
+ @plugin "@duskmoon-dev/core/plugin";
52
+ ```
53
+
54
+ The `@plugin` approach registers Material Design 3 color tokens directly into Tailwind's theme, enabling utility classes like `bg-primary`, `text-on-surface`, etc. Use this when you need Tailwind-aware color utilities alongside the component styles.
55
+
44
56
  ### 2. Add the theme attribute to your HTML
45
57
 
46
58
  ```html
package/dist/index.css CHANGED
@@ -400,7 +400,7 @@ html {
400
400
  /* Built-in themes */
401
401
  /**
402
402
  * Built-in themes
403
- * Theme definitions for sunshine (light) and moonlight (dark)
403
+ * Theme definitions for all built-in themes
404
404
  */
405
405
 
406
406
  /**
@@ -908,6 +908,444 @@ html {
908
908
  }
909
909
 
910
910
 
911
+ /**
912
+ * Ocean Theme - Dark Mode
913
+ * A deep, calming dark theme inspired by ocean depths
914
+ * Uses OKLCH format: "oklch(L% C H)"
915
+ */
916
+
917
+ [data-theme="ocean"] {
918
+ color-scheme: dark;
919
+
920
+ /* ============================================
921
+ * BRAND COLORS
922
+ * ============================================ */
923
+
924
+ /* Primary Color Family - Deep Cyan */
925
+ --color-primary: oklch(72% 0.12 210);
926
+ --color-primary-content: oklch(15% 0.02 210);
927
+ --color-primary-container: oklch(30% 0.08 210);
928
+ --color-on-primary-container: oklch(90% 0.04 210);
929
+
930
+ /* Secondary Color Family - Aquamarine */
931
+ --color-secondary: oklch(75% 0.10 175);
932
+ --color-secondary-content: oklch(15% 0.02 175);
933
+ --color-secondary-container: oklch(28% 0.06 175);
934
+ --color-on-secondary-container: oklch(90% 0.04 175);
935
+
936
+ /* Tertiary Color Family - Lavender */
937
+ --color-tertiary: oklch(72% 0.10 280);
938
+ --color-tertiary-content: oklch(15% 0.02 280);
939
+ --color-tertiary-container: oklch(28% 0.06 280);
940
+ --color-on-tertiary-container: oklch(90% 0.04 280);
941
+
942
+ /* ============================================
943
+ * SURFACE COLORS
944
+ * ============================================ */
945
+
946
+ --color-surface: oklch(16% 0.02 220);
947
+ --color-surface-dim: oklch(10% 0.015 220);
948
+ --color-surface-bright: oklch(24% 0.025 220);
949
+ --color-surface-container-lowest: oklch(8% 0.01 220);
950
+ --color-surface-container-low: oklch(12% 0.015 220);
951
+ --color-surface-container: oklch(16% 0.02 220);
952
+ --color-surface-container-high: oklch(20% 0.022 220);
953
+ --color-surface-container-highest: oklch(24% 0.025 220);
954
+ --color-on-surface: oklch(90% 0.01 210);
955
+ --color-on-surface-variant: oklch(70% 0.015 210);
956
+
957
+ /* ============================================
958
+ * SEMANTIC COLORS
959
+ * ============================================ */
960
+
961
+ /* Info - Light Blue */
962
+ --color-info: oklch(70% 0.12 230);
963
+ --color-info-content: oklch(15% 0.03 230);
964
+ --color-info-container: oklch(28% 0.06 230);
965
+ --color-on-info-container: oklch(88% 0.04 230);
966
+
967
+ /* Success - Sea Green */
968
+ --color-success: oklch(72% 0.15 155);
969
+ --color-success-content: oklch(15% 0.03 155);
970
+ --color-success-container: oklch(28% 0.06 155);
971
+ --color-on-success-container: oklch(88% 0.04 155);
972
+
973
+ /* Warning - Sandy Gold */
974
+ --color-warning: oklch(75% 0.14 75);
975
+ --color-warning-content: oklch(18% 0.04 75);
976
+ --color-warning-container: oklch(30% 0.06 75);
977
+ --color-on-warning-container: oklch(88% 0.05 75);
978
+
979
+ /* Error - Coral Red */
980
+ --color-error: oklch(70% 0.16 20);
981
+ --color-error-content: oklch(15% 0.03 20);
982
+ --color-error-container: oklch(28% 0.06 20);
983
+ --color-on-error-container: oklch(88% 0.05 20);
984
+
985
+ /* ============================================
986
+ * NEUTRAL COLORS (Base Scale)
987
+ * ============================================ */
988
+
989
+ --color-base-100: oklch(16% 0.02 220);
990
+ --color-base-200: oklch(14% 0.015 220);
991
+ --color-base-300: oklch(10% 0.01 220);
992
+ --color-base-400: oklch(30% 0.02 220);
993
+ --color-base-500: oklch(40% 0.02 220);
994
+ --color-base-600: oklch(55% 0.015 220);
995
+ --color-base-700: oklch(70% 0.01 220);
996
+ --color-base-800: oklch(82% 0.01 220);
997
+ --color-base-900: oklch(92% 0.005 220);
998
+ --color-base-content: oklch(90% 0.01 210);
999
+
1000
+ /* ============================================
1001
+ * OUTLINE COLORS
1002
+ * ============================================ */
1003
+
1004
+ --color-outline: oklch(45% 0.02 220);
1005
+ --color-outline-variant: oklch(32% 0.015 220);
1006
+
1007
+ /* ============================================
1008
+ * ACCENT COLORS
1009
+ * ============================================ */
1010
+
1011
+ --color-accent: oklch(70% 0.12 190);
1012
+ --color-accent-content: oklch(15% 0.03 190);
1013
+
1014
+ /* ============================================
1015
+ * NEUTRAL COLORS
1016
+ * ============================================ */
1017
+
1018
+ --color-neutral: oklch(90% 0.01 210);
1019
+ --color-neutral-content: oklch(16% 0.02 220);
1020
+ --color-neutral-variant: oklch(50% 0.02 220);
1021
+
1022
+ /* ============================================
1023
+ * SHAPE & DEPTH
1024
+ * ============================================ */
1025
+
1026
+ --radius-selector: 0rem;
1027
+ --radius-field: 0.5rem;
1028
+ --radius-box: 1.5rem;
1029
+ --size-selector: 0.1875rem;
1030
+ --size-field: 0.1875rem;
1031
+ --border: 0.5px;
1032
+ --depth: 1;
1033
+ --noise: 0.5;
1034
+
1035
+ /* ============================================
1036
+ * SURFACE VARIANT
1037
+ * ============================================ */
1038
+
1039
+ --color-surface-variant: oklch(22% 0.025 220);
1040
+
1041
+ /* ============================================
1042
+ * INVERSE COLORS
1043
+ * ============================================ */
1044
+
1045
+ --color-inverse-surface: oklch(90% 0.01 210);
1046
+ --color-inverse-on-surface: oklch(16% 0.02 220);
1047
+ --color-inverse-primary: oklch(45% 0.12 210);
1048
+
1049
+ /* ============================================
1050
+ * SHADOW & SCRIM
1051
+ * ============================================ */
1052
+
1053
+ --color-shadow: oklch(0% 0 0);
1054
+ --color-scrim: oklch(0% 0 0 / 60%);
1055
+ }
1056
+
1057
+ /**
1058
+ * Forest Theme - Light Mode
1059
+ * A natural, earthy light theme inspired by woodland environments
1060
+ * Uses OKLCH format: "oklch(L% C H)"
1061
+ */
1062
+
1063
+ [data-theme="forest"] {
1064
+ color-scheme: light;
1065
+
1066
+ /* ============================================
1067
+ * BRAND COLORS
1068
+ * ============================================ */
1069
+
1070
+ /* Primary Color Family - Forest Green */
1071
+ --color-primary: oklch(50% 0.14 150);
1072
+ --color-primary-content: oklch(98% 0.01 150);
1073
+ --color-primary-container: oklch(92% 0.04 150);
1074
+ --color-on-primary-container: oklch(22% 0.06 150);
1075
+
1076
+ /* Secondary Color Family - Warm Brown */
1077
+ --color-secondary: oklch(52% 0.10 55);
1078
+ --color-secondary-content: oklch(98% 0.01 55);
1079
+ --color-secondary-container: oklch(92% 0.03 55);
1080
+ --color-on-secondary-container: oklch(24% 0.05 55);
1081
+
1082
+ /* Tertiary Color Family - Sage */
1083
+ --color-tertiary: oklch(58% 0.08 175);
1084
+ --color-tertiary-content: oklch(98% 0.01 175);
1085
+ --color-tertiary-container: oklch(93% 0.03 175);
1086
+ --color-on-tertiary-container: oklch(22% 0.04 175);
1087
+
1088
+ /* ============================================
1089
+ * SURFACE COLORS
1090
+ * ============================================ */
1091
+
1092
+ --color-surface: oklch(99% 0.005 100);
1093
+ --color-surface-dim: oklch(95% 0.01 100);
1094
+ --color-surface-bright: oklch(100% 0 0);
1095
+ --color-surface-container-lowest: oklch(100% 0 0);
1096
+ --color-surface-container-low: oklch(98% 0.008 100);
1097
+ --color-surface-container: oklch(96% 0.01 100);
1098
+ --color-surface-container-high: oklch(94% 0.012 100);
1099
+ --color-surface-container-highest: oklch(92% 0.015 100);
1100
+ --color-on-surface: oklch(22% 0.02 100);
1101
+ --color-on-surface-variant: oklch(42% 0.02 100);
1102
+
1103
+ /* ============================================
1104
+ * SEMANTIC COLORS
1105
+ * ============================================ */
1106
+
1107
+ /* Info - Forest Blue */
1108
+ --color-info: oklch(48% 0.12 240);
1109
+ --color-info-content: oklch(98% 0.01 240);
1110
+ --color-info-container: oklch(94% 0.03 240);
1111
+ --color-on-info-container: oklch(28% 0.06 240);
1112
+
1113
+ /* Success - Moss Green */
1114
+ --color-success: oklch(55% 0.16 145);
1115
+ --color-success-content: oklch(98% 0.01 145);
1116
+ --color-success-container: oklch(93% 0.04 145);
1117
+ --color-on-success-container: oklch(25% 0.07 145);
1118
+
1119
+ /* Warning - Autumn Gold */
1120
+ --color-warning: oklch(62% 0.16 65);
1121
+ --color-warning-content: oklch(18% 0.04 65);
1122
+ --color-warning-container: oklch(93% 0.04 65);
1123
+ --color-on-warning-container: oklch(32% 0.08 65);
1124
+
1125
+ /* Error - Berry Red */
1126
+ --color-error: oklch(52% 0.18 15);
1127
+ --color-error-content: oklch(98% 0.01 15);
1128
+ --color-error-container: oklch(93% 0.04 15);
1129
+ --color-on-error-container: oklch(28% 0.08 15);
1130
+
1131
+ /* ============================================
1132
+ * NEUTRAL COLORS (Base Scale)
1133
+ * ============================================ */
1134
+
1135
+ --color-base-100: oklch(99% 0.005 100);
1136
+ --color-base-200: oklch(92% 0.01 100);
1137
+ --color-base-300: oklch(80% 0.01 100);
1138
+ --color-base-400: oklch(60% 0.01 100);
1139
+ --color-base-500: oklch(48% 0.01 100);
1140
+ --color-base-600: oklch(38% 0.01 100);
1141
+ --color-base-700: oklch(28% 0.01 100);
1142
+ --color-base-800: oklch(20% 0.008 100);
1143
+ --color-base-900: oklch(14% 0.005 100);
1144
+ --color-base-content: oklch(14% 0.01 100);
1145
+
1146
+ /* ============================================
1147
+ * OUTLINE COLORS
1148
+ * ============================================ */
1149
+
1150
+ --color-outline: oklch(60% 0.015 100);
1151
+ --color-outline-variant: oklch(78% 0.01 100);
1152
+
1153
+ /* ============================================
1154
+ * ACCENT COLORS
1155
+ * ============================================ */
1156
+
1157
+ --color-accent: oklch(60% 0.12 85);
1158
+ --color-accent-content: oklch(20% 0.04 85);
1159
+
1160
+ /* ============================================
1161
+ * NEUTRAL COLORS
1162
+ * ============================================ */
1163
+
1164
+ --color-neutral: oklch(14% 0.01 100);
1165
+ --color-neutral-content: oklch(92% 0.01 100);
1166
+ --color-neutral-variant: oklch(48% 0.015 100);
1167
+
1168
+ /* ============================================
1169
+ * SHAPE & DEPTH
1170
+ * ============================================ */
1171
+
1172
+ --radius-selector: 0.125rem;
1173
+ --radius-field: 0.375rem;
1174
+ --radius-box: 1rem;
1175
+ --size-selector: 0.1875rem;
1176
+ --size-field: 0.1875rem;
1177
+ --border: 1px;
1178
+ --depth: 0.5;
1179
+ --noise: 0.8;
1180
+
1181
+ /* ============================================
1182
+ * SURFACE VARIANT
1183
+ * ============================================ */
1184
+
1185
+ --color-surface-variant: oklch(93% 0.02 100);
1186
+
1187
+ /* ============================================
1188
+ * INVERSE COLORS
1189
+ * ============================================ */
1190
+
1191
+ --color-inverse-surface: oklch(22% 0.02 100);
1192
+ --color-inverse-on-surface: oklch(95% 0.01 100);
1193
+ --color-inverse-primary: oklch(75% 0.10 150);
1194
+
1195
+ /* ============================================
1196
+ * SHADOW & SCRIM
1197
+ * ============================================ */
1198
+
1199
+ --color-shadow: oklch(0% 0 0);
1200
+ --color-scrim: oklch(0% 0 0 / 40%);
1201
+ }
1202
+
1203
+ /**
1204
+ * Sunset Theme - Light Mode
1205
+ * A warm, vibrant theme inspired by golden hour and dusk skies
1206
+ * Uses OKLCH format: "oklch(L% C H)"
1207
+ */
1208
+
1209
+ [data-theme="sunset"] {
1210
+ color-scheme: light;
1211
+
1212
+ /* ============================================
1213
+ * BRAND COLORS
1214
+ * ============================================ */
1215
+
1216
+ /* Primary Color Family - Burnt Orange */
1217
+ --color-primary: oklch(58% 0.18 35);
1218
+ --color-primary-content: oklch(98% 0.01 35);
1219
+ --color-primary-container: oklch(92% 0.04 35);
1220
+ --color-on-primary-container: oklch(25% 0.07 35);
1221
+
1222
+ /* Secondary Color Family - Rose */
1223
+ --color-secondary: oklch(58% 0.15 350);
1224
+ --color-secondary-content: oklch(98% 0.01 350);
1225
+ --color-secondary-container: oklch(92% 0.04 350);
1226
+ --color-on-secondary-container: oklch(25% 0.06 350);
1227
+
1228
+ /* Tertiary Color Family - Golden */
1229
+ --color-tertiary: oklch(65% 0.14 75);
1230
+ --color-tertiary-content: oklch(18% 0.04 75);
1231
+ --color-tertiary-container: oklch(93% 0.04 75);
1232
+ --color-on-tertiary-container: oklch(28% 0.06 75);
1233
+
1234
+ /* ============================================
1235
+ * SURFACE COLORS
1236
+ * ============================================ */
1237
+
1238
+ --color-surface: oklch(99% 0.008 50);
1239
+ --color-surface-dim: oklch(95% 0.012 50);
1240
+ --color-surface-bright: oklch(100% 0 0);
1241
+ --color-surface-container-lowest: oklch(100% 0 0);
1242
+ --color-surface-container-low: oklch(98% 0.01 50);
1243
+ --color-surface-container: oklch(96% 0.012 50);
1244
+ --color-surface-container-high: oklch(94% 0.015 50);
1245
+ --color-surface-container-highest: oklch(92% 0.018 50);
1246
+ --color-on-surface: oklch(22% 0.02 30);
1247
+ --color-on-surface-variant: oklch(42% 0.02 30);
1248
+
1249
+ /* ============================================
1250
+ * SEMANTIC COLORS
1251
+ * ============================================ */
1252
+
1253
+ /* Info - Dusty Blue */
1254
+ --color-info: oklch(50% 0.10 245);
1255
+ --color-info-content: oklch(98% 0.01 245);
1256
+ --color-info-container: oklch(94% 0.03 245);
1257
+ --color-on-info-container: oklch(28% 0.05 245);
1258
+
1259
+ /* Success - Olive Green */
1260
+ --color-success: oklch(58% 0.14 140);
1261
+ --color-success-content: oklch(98% 0.01 140);
1262
+ --color-success-container: oklch(93% 0.04 140);
1263
+ --color-on-success-container: oklch(26% 0.06 140);
1264
+
1265
+ /* Warning - Deep Amber */
1266
+ --color-warning: oklch(65% 0.18 60);
1267
+ --color-warning-content: oklch(18% 0.05 60);
1268
+ --color-warning-container: oklch(93% 0.05 60);
1269
+ --color-on-warning-container: oklch(32% 0.08 60);
1270
+
1271
+ /* Error - Crimson */
1272
+ --color-error: oklch(52% 0.20 20);
1273
+ --color-error-content: oklch(98% 0.01 20);
1274
+ --color-error-container: oklch(93% 0.04 20);
1275
+ --color-on-error-container: oklch(28% 0.08 20);
1276
+
1277
+ /* ============================================
1278
+ * NEUTRAL COLORS (Base Scale)
1279
+ * ============================================ */
1280
+
1281
+ --color-base-100: oklch(99% 0.008 50);
1282
+ --color-base-200: oklch(92% 0.012 50);
1283
+ --color-base-300: oklch(80% 0.01 50);
1284
+ --color-base-400: oklch(60% 0.01 50);
1285
+ --color-base-500: oklch(48% 0.01 50);
1286
+ --color-base-600: oklch(38% 0.008 50);
1287
+ --color-base-700: oklch(28% 0.008 50);
1288
+ --color-base-800: oklch(20% 0.005 50);
1289
+ --color-base-900: oklch(14% 0.003 50);
1290
+ --color-base-content: oklch(14% 0.01 30);
1291
+
1292
+ /* ============================================
1293
+ * OUTLINE COLORS
1294
+ * ============================================ */
1295
+
1296
+ --color-outline: oklch(60% 0.015 40);
1297
+ --color-outline-variant: oklch(80% 0.01 40);
1298
+
1299
+ /* ============================================
1300
+ * ACCENT COLORS
1301
+ * ============================================ */
1302
+
1303
+ --color-accent: oklch(62% 0.14 310);
1304
+ --color-accent-content: oklch(98% 0.01 310);
1305
+
1306
+ /* ============================================
1307
+ * NEUTRAL COLORS
1308
+ * ============================================ */
1309
+
1310
+ --color-neutral: oklch(14% 0.01 30);
1311
+ --color-neutral-content: oklch(92% 0.01 50);
1312
+ --color-neutral-variant: oklch(48% 0.015 40);
1313
+
1314
+ /* ============================================
1315
+ * SHAPE & DEPTH
1316
+ * ============================================ */
1317
+
1318
+ --radius-selector: 0rem;
1319
+ --radius-field: 0.5rem;
1320
+ --radius-box: 1.5rem;
1321
+ --size-selector: 0.1875rem;
1322
+ --size-field: 0.1875rem;
1323
+ --border: 0.5px;
1324
+ --depth: 1;
1325
+ --noise: 0.7;
1326
+
1327
+ /* ============================================
1328
+ * SURFACE VARIANT
1329
+ * ============================================ */
1330
+
1331
+ --color-surface-variant: oklch(93% 0.02 50);
1332
+
1333
+ /* ============================================
1334
+ * INVERSE COLORS
1335
+ * ============================================ */
1336
+
1337
+ --color-inverse-surface: oklch(22% 0.02 30);
1338
+ --color-inverse-on-surface: oklch(95% 0.01 50);
1339
+ --color-inverse-primary: oklch(75% 0.14 35);
1340
+
1341
+ /* ============================================
1342
+ * SHADOW & SCRIM
1343
+ * ============================================ */
1344
+
1345
+ --color-shadow: oklch(0% 0 0);
1346
+ --color-scrim: oklch(0% 0 0 / 45%);
1347
+ }
1348
+
911
1349
 
912
1350
 
913
1351
  /* Component styles */
@@ -0,0 +1,145 @@
1
+ /**
2
+ * Forest Theme - Light Mode
3
+ * A natural, earthy light theme inspired by woodland environments
4
+ * Uses OKLCH format: "oklch(L% C H)"
5
+ */
6
+
7
+ [data-theme="forest"] {
8
+ color-scheme: light;
9
+
10
+ /* ============================================
11
+ * BRAND COLORS
12
+ * ============================================ */
13
+
14
+ /* Primary Color Family - Forest Green */
15
+ --color-primary: oklch(50% 0.14 150);
16
+ --color-primary-content: oklch(98% 0.01 150);
17
+ --color-primary-container: oklch(92% 0.04 150);
18
+ --color-on-primary-container: oklch(22% 0.06 150);
19
+
20
+ /* Secondary Color Family - Warm Brown */
21
+ --color-secondary: oklch(52% 0.10 55);
22
+ --color-secondary-content: oklch(98% 0.01 55);
23
+ --color-secondary-container: oklch(92% 0.03 55);
24
+ --color-on-secondary-container: oklch(24% 0.05 55);
25
+
26
+ /* Tertiary Color Family - Sage */
27
+ --color-tertiary: oklch(58% 0.08 175);
28
+ --color-tertiary-content: oklch(98% 0.01 175);
29
+ --color-tertiary-container: oklch(93% 0.03 175);
30
+ --color-on-tertiary-container: oklch(22% 0.04 175);
31
+
32
+ /* ============================================
33
+ * SURFACE COLORS
34
+ * ============================================ */
35
+
36
+ --color-surface: oklch(99% 0.005 100);
37
+ --color-surface-dim: oklch(95% 0.01 100);
38
+ --color-surface-bright: oklch(100% 0 0);
39
+ --color-surface-container-lowest: oklch(100% 0 0);
40
+ --color-surface-container-low: oklch(98% 0.008 100);
41
+ --color-surface-container: oklch(96% 0.01 100);
42
+ --color-surface-container-high: oklch(94% 0.012 100);
43
+ --color-surface-container-highest: oklch(92% 0.015 100);
44
+ --color-on-surface: oklch(22% 0.02 100);
45
+ --color-on-surface-variant: oklch(42% 0.02 100);
46
+
47
+ /* ============================================
48
+ * SEMANTIC COLORS
49
+ * ============================================ */
50
+
51
+ /* Info - Forest Blue */
52
+ --color-info: oklch(48% 0.12 240);
53
+ --color-info-content: oklch(98% 0.01 240);
54
+ --color-info-container: oklch(94% 0.03 240);
55
+ --color-on-info-container: oklch(28% 0.06 240);
56
+
57
+ /* Success - Moss Green */
58
+ --color-success: oklch(55% 0.16 145);
59
+ --color-success-content: oklch(98% 0.01 145);
60
+ --color-success-container: oklch(93% 0.04 145);
61
+ --color-on-success-container: oklch(25% 0.07 145);
62
+
63
+ /* Warning - Autumn Gold */
64
+ --color-warning: oklch(62% 0.16 65);
65
+ --color-warning-content: oklch(18% 0.04 65);
66
+ --color-warning-container: oklch(93% 0.04 65);
67
+ --color-on-warning-container: oklch(32% 0.08 65);
68
+
69
+ /* Error - Berry Red */
70
+ --color-error: oklch(52% 0.18 15);
71
+ --color-error-content: oklch(98% 0.01 15);
72
+ --color-error-container: oklch(93% 0.04 15);
73
+ --color-on-error-container: oklch(28% 0.08 15);
74
+
75
+ /* ============================================
76
+ * NEUTRAL COLORS (Base Scale)
77
+ * ============================================ */
78
+
79
+ --color-base-100: oklch(99% 0.005 100);
80
+ --color-base-200: oklch(92% 0.01 100);
81
+ --color-base-300: oklch(80% 0.01 100);
82
+ --color-base-400: oklch(60% 0.01 100);
83
+ --color-base-500: oklch(48% 0.01 100);
84
+ --color-base-600: oklch(38% 0.01 100);
85
+ --color-base-700: oklch(28% 0.01 100);
86
+ --color-base-800: oklch(20% 0.008 100);
87
+ --color-base-900: oklch(14% 0.005 100);
88
+ --color-base-content: oklch(14% 0.01 100);
89
+
90
+ /* ============================================
91
+ * OUTLINE COLORS
92
+ * ============================================ */
93
+
94
+ --color-outline: oklch(60% 0.015 100);
95
+ --color-outline-variant: oklch(78% 0.01 100);
96
+
97
+ /* ============================================
98
+ * ACCENT COLORS
99
+ * ============================================ */
100
+
101
+ --color-accent: oklch(60% 0.12 85);
102
+ --color-accent-content: oklch(20% 0.04 85);
103
+
104
+ /* ============================================
105
+ * NEUTRAL COLORS
106
+ * ============================================ */
107
+
108
+ --color-neutral: oklch(14% 0.01 100);
109
+ --color-neutral-content: oklch(92% 0.01 100);
110
+ --color-neutral-variant: oklch(48% 0.015 100);
111
+
112
+ /* ============================================
113
+ * SHAPE & DEPTH
114
+ * ============================================ */
115
+
116
+ --radius-selector: 0.125rem;
117
+ --radius-field: 0.375rem;
118
+ --radius-box: 1rem;
119
+ --size-selector: 0.1875rem;
120
+ --size-field: 0.1875rem;
121
+ --border: 1px;
122
+ --depth: 0.5;
123
+ --noise: 0.8;
124
+
125
+ /* ============================================
126
+ * SURFACE VARIANT
127
+ * ============================================ */
128
+
129
+ --color-surface-variant: oklch(93% 0.02 100);
130
+
131
+ /* ============================================
132
+ * INVERSE COLORS
133
+ * ============================================ */
134
+
135
+ --color-inverse-surface: oklch(22% 0.02 100);
136
+ --color-inverse-on-surface: oklch(95% 0.01 100);
137
+ --color-inverse-primary: oklch(75% 0.10 150);
138
+
139
+ /* ============================================
140
+ * SHADOW & SCRIM
141
+ * ============================================ */
142
+
143
+ --color-shadow: oklch(0% 0 0);
144
+ --color-scrim: oklch(0% 0 0 / 40%);
145
+ }
@@ -0,0 +1,145 @@
1
+ /**
2
+ * Ocean Theme - Dark Mode
3
+ * A deep, calming dark theme inspired by ocean depths
4
+ * Uses OKLCH format: "oklch(L% C H)"
5
+ */
6
+
7
+ [data-theme="ocean"] {
8
+ color-scheme: dark;
9
+
10
+ /* ============================================
11
+ * BRAND COLORS
12
+ * ============================================ */
13
+
14
+ /* Primary Color Family - Deep Cyan */
15
+ --color-primary: oklch(72% 0.12 210);
16
+ --color-primary-content: oklch(15% 0.02 210);
17
+ --color-primary-container: oklch(30% 0.08 210);
18
+ --color-on-primary-container: oklch(90% 0.04 210);
19
+
20
+ /* Secondary Color Family - Aquamarine */
21
+ --color-secondary: oklch(75% 0.10 175);
22
+ --color-secondary-content: oklch(15% 0.02 175);
23
+ --color-secondary-container: oklch(28% 0.06 175);
24
+ --color-on-secondary-container: oklch(90% 0.04 175);
25
+
26
+ /* Tertiary Color Family - Lavender */
27
+ --color-tertiary: oklch(72% 0.10 280);
28
+ --color-tertiary-content: oklch(15% 0.02 280);
29
+ --color-tertiary-container: oklch(28% 0.06 280);
30
+ --color-on-tertiary-container: oklch(90% 0.04 280);
31
+
32
+ /* ============================================
33
+ * SURFACE COLORS
34
+ * ============================================ */
35
+
36
+ --color-surface: oklch(16% 0.02 220);
37
+ --color-surface-dim: oklch(10% 0.015 220);
38
+ --color-surface-bright: oklch(24% 0.025 220);
39
+ --color-surface-container-lowest: oklch(8% 0.01 220);
40
+ --color-surface-container-low: oklch(12% 0.015 220);
41
+ --color-surface-container: oklch(16% 0.02 220);
42
+ --color-surface-container-high: oklch(20% 0.022 220);
43
+ --color-surface-container-highest: oklch(24% 0.025 220);
44
+ --color-on-surface: oklch(90% 0.01 210);
45
+ --color-on-surface-variant: oklch(70% 0.015 210);
46
+
47
+ /* ============================================
48
+ * SEMANTIC COLORS
49
+ * ============================================ */
50
+
51
+ /* Info - Light Blue */
52
+ --color-info: oklch(70% 0.12 230);
53
+ --color-info-content: oklch(15% 0.03 230);
54
+ --color-info-container: oklch(28% 0.06 230);
55
+ --color-on-info-container: oklch(88% 0.04 230);
56
+
57
+ /* Success - Sea Green */
58
+ --color-success: oklch(72% 0.15 155);
59
+ --color-success-content: oklch(15% 0.03 155);
60
+ --color-success-container: oklch(28% 0.06 155);
61
+ --color-on-success-container: oklch(88% 0.04 155);
62
+
63
+ /* Warning - Sandy Gold */
64
+ --color-warning: oklch(75% 0.14 75);
65
+ --color-warning-content: oklch(18% 0.04 75);
66
+ --color-warning-container: oklch(30% 0.06 75);
67
+ --color-on-warning-container: oklch(88% 0.05 75);
68
+
69
+ /* Error - Coral Red */
70
+ --color-error: oklch(70% 0.16 20);
71
+ --color-error-content: oklch(15% 0.03 20);
72
+ --color-error-container: oklch(28% 0.06 20);
73
+ --color-on-error-container: oklch(88% 0.05 20);
74
+
75
+ /* ============================================
76
+ * NEUTRAL COLORS (Base Scale)
77
+ * ============================================ */
78
+
79
+ --color-base-100: oklch(16% 0.02 220);
80
+ --color-base-200: oklch(14% 0.015 220);
81
+ --color-base-300: oklch(10% 0.01 220);
82
+ --color-base-400: oklch(30% 0.02 220);
83
+ --color-base-500: oklch(40% 0.02 220);
84
+ --color-base-600: oklch(55% 0.015 220);
85
+ --color-base-700: oklch(70% 0.01 220);
86
+ --color-base-800: oklch(82% 0.01 220);
87
+ --color-base-900: oklch(92% 0.005 220);
88
+ --color-base-content: oklch(90% 0.01 210);
89
+
90
+ /* ============================================
91
+ * OUTLINE COLORS
92
+ * ============================================ */
93
+
94
+ --color-outline: oklch(45% 0.02 220);
95
+ --color-outline-variant: oklch(32% 0.015 220);
96
+
97
+ /* ============================================
98
+ * ACCENT COLORS
99
+ * ============================================ */
100
+
101
+ --color-accent: oklch(70% 0.12 190);
102
+ --color-accent-content: oklch(15% 0.03 190);
103
+
104
+ /* ============================================
105
+ * NEUTRAL COLORS
106
+ * ============================================ */
107
+
108
+ --color-neutral: oklch(90% 0.01 210);
109
+ --color-neutral-content: oklch(16% 0.02 220);
110
+ --color-neutral-variant: oklch(50% 0.02 220);
111
+
112
+ /* ============================================
113
+ * SHAPE & DEPTH
114
+ * ============================================ */
115
+
116
+ --radius-selector: 0rem;
117
+ --radius-field: 0.5rem;
118
+ --radius-box: 1.5rem;
119
+ --size-selector: 0.1875rem;
120
+ --size-field: 0.1875rem;
121
+ --border: 0.5px;
122
+ --depth: 1;
123
+ --noise: 0.5;
124
+
125
+ /* ============================================
126
+ * SURFACE VARIANT
127
+ * ============================================ */
128
+
129
+ --color-surface-variant: oklch(22% 0.025 220);
130
+
131
+ /* ============================================
132
+ * INVERSE COLORS
133
+ * ============================================ */
134
+
135
+ --color-inverse-surface: oklch(90% 0.01 210);
136
+ --color-inverse-on-surface: oklch(16% 0.02 220);
137
+ --color-inverse-primary: oklch(45% 0.12 210);
138
+
139
+ /* ============================================
140
+ * SHADOW & SCRIM
141
+ * ============================================ */
142
+
143
+ --color-shadow: oklch(0% 0 0);
144
+ --color-scrim: oklch(0% 0 0 / 60%);
145
+ }
@@ -0,0 +1,145 @@
1
+ /**
2
+ * Sunset Theme - Light Mode
3
+ * A warm, vibrant theme inspired by golden hour and dusk skies
4
+ * Uses OKLCH format: "oklch(L% C H)"
5
+ */
6
+
7
+ [data-theme="sunset"] {
8
+ color-scheme: light;
9
+
10
+ /* ============================================
11
+ * BRAND COLORS
12
+ * ============================================ */
13
+
14
+ /* Primary Color Family - Burnt Orange */
15
+ --color-primary: oklch(58% 0.18 35);
16
+ --color-primary-content: oklch(98% 0.01 35);
17
+ --color-primary-container: oklch(92% 0.04 35);
18
+ --color-on-primary-container: oklch(25% 0.07 35);
19
+
20
+ /* Secondary Color Family - Rose */
21
+ --color-secondary: oklch(58% 0.15 350);
22
+ --color-secondary-content: oklch(98% 0.01 350);
23
+ --color-secondary-container: oklch(92% 0.04 350);
24
+ --color-on-secondary-container: oklch(25% 0.06 350);
25
+
26
+ /* Tertiary Color Family - Golden */
27
+ --color-tertiary: oklch(65% 0.14 75);
28
+ --color-tertiary-content: oklch(18% 0.04 75);
29
+ --color-tertiary-container: oklch(93% 0.04 75);
30
+ --color-on-tertiary-container: oklch(28% 0.06 75);
31
+
32
+ /* ============================================
33
+ * SURFACE COLORS
34
+ * ============================================ */
35
+
36
+ --color-surface: oklch(99% 0.008 50);
37
+ --color-surface-dim: oklch(95% 0.012 50);
38
+ --color-surface-bright: oklch(100% 0 0);
39
+ --color-surface-container-lowest: oklch(100% 0 0);
40
+ --color-surface-container-low: oklch(98% 0.01 50);
41
+ --color-surface-container: oklch(96% 0.012 50);
42
+ --color-surface-container-high: oklch(94% 0.015 50);
43
+ --color-surface-container-highest: oklch(92% 0.018 50);
44
+ --color-on-surface: oklch(22% 0.02 30);
45
+ --color-on-surface-variant: oklch(42% 0.02 30);
46
+
47
+ /* ============================================
48
+ * SEMANTIC COLORS
49
+ * ============================================ */
50
+
51
+ /* Info - Dusty Blue */
52
+ --color-info: oklch(50% 0.10 245);
53
+ --color-info-content: oklch(98% 0.01 245);
54
+ --color-info-container: oklch(94% 0.03 245);
55
+ --color-on-info-container: oklch(28% 0.05 245);
56
+
57
+ /* Success - Olive Green */
58
+ --color-success: oklch(58% 0.14 140);
59
+ --color-success-content: oklch(98% 0.01 140);
60
+ --color-success-container: oklch(93% 0.04 140);
61
+ --color-on-success-container: oklch(26% 0.06 140);
62
+
63
+ /* Warning - Deep Amber */
64
+ --color-warning: oklch(65% 0.18 60);
65
+ --color-warning-content: oklch(18% 0.05 60);
66
+ --color-warning-container: oklch(93% 0.05 60);
67
+ --color-on-warning-container: oklch(32% 0.08 60);
68
+
69
+ /* Error - Crimson */
70
+ --color-error: oklch(52% 0.20 20);
71
+ --color-error-content: oklch(98% 0.01 20);
72
+ --color-error-container: oklch(93% 0.04 20);
73
+ --color-on-error-container: oklch(28% 0.08 20);
74
+
75
+ /* ============================================
76
+ * NEUTRAL COLORS (Base Scale)
77
+ * ============================================ */
78
+
79
+ --color-base-100: oklch(99% 0.008 50);
80
+ --color-base-200: oklch(92% 0.012 50);
81
+ --color-base-300: oklch(80% 0.01 50);
82
+ --color-base-400: oklch(60% 0.01 50);
83
+ --color-base-500: oklch(48% 0.01 50);
84
+ --color-base-600: oklch(38% 0.008 50);
85
+ --color-base-700: oklch(28% 0.008 50);
86
+ --color-base-800: oklch(20% 0.005 50);
87
+ --color-base-900: oklch(14% 0.003 50);
88
+ --color-base-content: oklch(14% 0.01 30);
89
+
90
+ /* ============================================
91
+ * OUTLINE COLORS
92
+ * ============================================ */
93
+
94
+ --color-outline: oklch(60% 0.015 40);
95
+ --color-outline-variant: oklch(80% 0.01 40);
96
+
97
+ /* ============================================
98
+ * ACCENT COLORS
99
+ * ============================================ */
100
+
101
+ --color-accent: oklch(62% 0.14 310);
102
+ --color-accent-content: oklch(98% 0.01 310);
103
+
104
+ /* ============================================
105
+ * NEUTRAL COLORS
106
+ * ============================================ */
107
+
108
+ --color-neutral: oklch(14% 0.01 30);
109
+ --color-neutral-content: oklch(92% 0.01 50);
110
+ --color-neutral-variant: oklch(48% 0.015 40);
111
+
112
+ /* ============================================
113
+ * SHAPE & DEPTH
114
+ * ============================================ */
115
+
116
+ --radius-selector: 0rem;
117
+ --radius-field: 0.5rem;
118
+ --radius-box: 1.5rem;
119
+ --size-selector: 0.1875rem;
120
+ --size-field: 0.1875rem;
121
+ --border: 0.5px;
122
+ --depth: 1;
123
+ --noise: 0.7;
124
+
125
+ /* ============================================
126
+ * SURFACE VARIANT
127
+ * ============================================ */
128
+
129
+ --color-surface-variant: oklch(93% 0.02 50);
130
+
131
+ /* ============================================
132
+ * INVERSE COLORS
133
+ * ============================================ */
134
+
135
+ --color-inverse-surface: oklch(22% 0.02 30);
136
+ --color-inverse-on-surface: oklch(95% 0.01 50);
137
+ --color-inverse-primary: oklch(75% 0.14 35);
138
+
139
+ /* ============================================
140
+ * SHADOW & SCRIM
141
+ * ============================================ */
142
+
143
+ --color-shadow: oklch(0% 0 0);
144
+ --color-scrim: oklch(0% 0 0 / 45%);
145
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@duskmoon-dev/core",
3
- "version": "1.7.0",
3
+ "version": "1.8.0",
4
4
  "description": "DuskMoonUI - Tailwind CSS v4 plugin with Material Design 3 color system and component styles",
5
5
  "type": "module",
6
6
  "main": "./dist/index.css",
@@ -22,6 +22,15 @@
22
22
  "./themes/moonlight": {
23
23
  "style": "./dist/themes/moonlight.css"
24
24
  },
25
+ "./themes/ocean": {
26
+ "style": "./dist/themes/ocean.css"
27
+ },
28
+ "./themes/forest": {
29
+ "style": "./dist/themes/forest.css"
30
+ },
31
+ "./themes/sunset": {
32
+ "style": "./dist/themes/sunset.css"
33
+ },
25
34
  "./components": {
26
35
  "style": "./dist/components/index.css"
27
36
  },