helsingborg-stad / styleguide
Package info
github.com/helsingborg-stad/styleguide
Language:TypeScript
pkg:composer/helsingborg-stad/styleguide
Requires
- php: ^8.2
- erusev/parsedown: ^1.7
- helsingborg-stad/component-library: ^5.19.1
- ramsey/uuid: ^4.9
Requires (Dev)
- carthage-software/mago: 1.26.0
- phpunit/phpunit: ^9.6
- dev-main-1.x
- 2.237.0
- 2.235.12
- 2.235.10
- 2.235.8
- 2.235.6
- 2.235.4
- 2.235.2
- 2.235.0
- 2.234.7
- 2.234.4
- 2.234.2
- 2.234.0
- 2.233.33
- 2.233.31
- 2.233.29
- 2.233.28
- 2.233.25
- 2.233.23
- 2.233.21
- 2.233.19
- 2.233.15
- 2.233.13
- 2.233.11
- 2.233.9
- 2.233.7
- 2.233.4
- 2.233.1
- 2.232.13
- 2.232.11
- 2.232.9
- 2.232.6
- 2.232.3
- 2.232.0
- 2.231.0
- 2.230.3
- 2.230.0
- 2.229.0
- 2.228.0
- 2.227.2
- 2.227.0
- 2.226.1
- 2.225.9
- 2.225.6
- 2.225.4
- 2.225.2
- 2.225.0
- 2.224.4
- 2.224.2
- 2.224.0
- 2.223.2
- 2.223.0
- 2.222.4
- 2.222.2
- 2.221.6
- 2.221.4
- 2.221.2
- 2.220.2
- 2.220.0
- 2.219.2
- 2.219.0
- 2.218.0
- 2.217.2
- 2.217.0
- 2.216.0
- 2.215.6
- 2.214.5
- 2.214.1
- 2.213.0
- 2.212.15
- 2.212.13
- 2.212.11
- 2.212.8
- 2.212.6
- 2.212.4
- 2.212.2
- 2.212.0
- 2.211.7
- 2.211.4
- 2.210.0
- 2.209.7
- 2.209.4
- 2.208.9
- 2.208.7
- 2.208.5
- 2.208.3
- 2.208.1
- 2.207.11
- 2.207.7
- 2.207.5
- 2.207.1
- 2.206.20
- 2.206.18
- 2.206.15
- 2.206.14
- 2.206.12
- 2.206.7
- 2.206.5
- 2.206.4
- 2.206.2
- 2.206.0
- 2.205.9
- 2.205.7
- 2.205.5
- 2.205.3
- 2.205.0
- 2.204.3
- 2.203.0
- 2.202.16
- 2.202.14
- 2.202.12
- 2.202.10
- 2.202.8
- 2.202.6
- 2.202.4
- 2.202.2
- 2.201.1
- 2.200.3
- 2.200.1
- 2.199.0
- 2.198.50
- 2.198.48
- 2.198.46
- 2.198.44
- 2.198.42
- 2.198.39
- 2.198.35
- 2.198.33
- 2.198.30
- 2.198.28
- 2.198.25
- 2.198.23
- 2.198.21
- 2.198.19
- 2.198.17
- 2.198.13
- 2.198.11
- 2.198.9
- 2.198.7
- 2.198.3
- 2.198.1
- 2.197.17
- 2.197.14
- 2.197.12
- 2.197.9
- 2.197.6
- 2.197.4
- 2.197.2
- 2.196.6
- 2.196.4
- 2.196.0
- 2.195.4
- 2.195.2
- 2.194.10
- 2.194.9
- 2.194.8
- 2.194.7
- 2.194.5
- 2.194.3
- 2.194.1
- 2.193.13
- 2.193.11
- 2.193.9
- 2.193.7
- 2.193.5
- 2.193.3
- 2.193.1
- 2.193.0
- 2.192.9
- 2.192.8
- 2.192.7
- 2.192.5
- 2.192.3
- 2.192.1
- 2.191.4
- 2.191.2
- 2.191.0
- 2.190.20
- 2.190.18
- 2.190.15
- 2.190.11
- 2.190.9
- 2.190.8
- 2.190.7
- 2.190.5
- 2.190.3
- 2.190.1
- 2.189.35
- 2.189.28
- 2.189.24
- 2.189.22
- 2.189.14
- 2.189.11
- 2.189.8
- 2.189.6
- 2.189.4
- 2.189.2
- 2.189.1
- 2.189.0
- 2.188.6
- 2.188.3
- 2.188.0
- 2.187.4
- 2.187.2
- 2.186.0
- 2.185.9
- 2.185.7
- 2.185.5
- 2.185.3
- 2.185.1
- 2.184.4
- 2.184.1
- 2.183.1
- 2.182.5
- 2.182.2
- 2.181.3
- 2.180.3
- 2.180.1
- 2.179.9
- 2.179.7
- 2.179.5
- 2.179.2
- 2.179.0
- 2.178.0
- 2.177.2
- 2.176.5
- 2.176.2
- 2.175.4
- 2.175.2
- 2.174.4
- 2.174.2
- 2.174.0
- 2.173.17
- 2.173.15
- 2.173.12
- 2.173.10
- 2.173.8
- 2.173.6
- 2.173.4
- 2.173.2
- 2.173.0
- 2.171.0
- 2.170.4
- 2.170.2
- 2.170.0
- 2.169.14
- 2.169.12
- 2.169.10
- 2.169.8
- 2.169.6
- 2.169.4
- 2.169.1
- 2.167.6
- 2.167.4
- 2.167.2
- 2.167.0
- 2.166.1
- 2.165.1
- 2.164.2
- 2.164.0
- 2.163.2
- 2.162.1
- 2.161.5
- 2.161.1
- 2.160.0
- 2.159.3
- 2.158.3
- 2.158.1
- 2.157.2
- 2.156.0
- 2.154.9
- 2.154.7
- 2.154.5
- 2.154.1
- 2.152.3
- v0.11.1404
- v0.11.1403
- v0.11.1402
- v0.11.1401
- v0.11.1400
- v0.11.1399
- v0.11.1398
- v0.11.1397
- v0.11.1396
- v0.11.1395
- v0.11.1394
- v0.11.1393
- v0.11.1392
- v0.11.1391
- v0.11.1390
- v0.11.1389
- v0.11.1388
- v0.11.1387
- v0.11.1386
- v0.11.1385
- v0.11.1384
- v0.11.1383
- v0.11.1382
- v0.11.1381
- v0.11.1380
- v0.11.1379
- v0.11.1378
- v0.11.1377
- v0.11.1376
- v0.11.1375
- v0.11.1374
- v0.11.1373
- v0.11.1372
- v0.11.1371
- v0.11.1370
- v0.11.1369
- v0.11.1368
- v0.11.1367
- v0.11.1366
- v0.11.1365
- v0.11.1364
- v0.11.1363
- v0.11.1362
- v0.11.1361
- v0.11.1360
- v0.11.1359
- v0.11.1358
- v0.11.1357
- v0.11.1356
- v0.11.1355
- v0.11.1354
- v0.11.1353
- v0.11.1352
- v0.11.1351
- v0.11.1350
- v0.11.1349
- v0.11.1348
- v0.11.1347
- v0.11.1346
- v0.11.1345
- v0.11.1344
- v0.11.1343
- v0.11.1342
- v0.11.1341
- v0.11.1340
- v0.11.1339
- v0.11.1338
- v0.11.1337
- v0.11.1336
- v0.11.1335
- v0.11.1334
- v0.11.1333
- v0.11.1332
- v0.11.1331
- v0.11.1330
- v0.11.1329
- v0.11.1328
- v0.11.1327
- v0.11.1326
- v0.11.1325
- v0.11.1324
- v0.11.1323
- v0.11.1322
- v0.11.1321
- v0.11.1320
- v0.11.1319
- v0.11.1318
- v0.11.1317
- v0.11.1316
- v0.11.1315
- v0.11.1314
- v0.11.1313
- v0.11.1312
- v0.11.1311
- v0.11.1310
- v0.11.1309
- v0.11.1308
- v0.11.1307
- v0.11.1306
- v0.11.1305
- v0.11.1304
- v0.11.1303
- v0.11.1302
- v0.11.1301
- v0.11.1300
- v0.11.1299
- v0.11.1298
- v0.11.1297
- v0.11.1296
- v0.11.1295
- v0.11.1294
- v0.11.1293
- v0.11.1292
- v0.11.1291
- v0.11.1290
- v0.11.1289
- v0.11.1288
- v0.11.1287
- v0.11.1286
- v0.11.1285
- v0.11.1284
- v0.11.1283
- v0.11.1282
- v0.11.1281
- v0.11.1280
- v0.11.1279
- v0.11.1278
- v0.11.1277
- v0.11.1276
- v0.11.1275
- v0.11.1274
- v0.11.1273
- v0.11.1272
- v0.11.1271
- v0.11.1270
- v0.11.1269
- v0.11.1268
- v0.11.1267
- v0.11.1266
- v0.11.1265
- v0.11.1264
- v0.11.1263
- v0.11.1262
- v0.11.1261
- v0.11.1260
- v0.11.1259
- v0.11.1258
- v0.11.1257
- v0.11.1256
- v0.11.1255
- v0.11.1254
- v0.11.1253
- v0.11.1252
- v0.11.1251
- v0.11.1250
- v0.11.1249
- v0.11.1248
- v0.11.1247
- v0.11.1246
- v0.11.1245
- v0.11.1244
- v0.11.1243
- v0.11.1242
- v0.11.1241
- v0.11.1240
- v0.11.1239
- v0.11.1238
- v0.11.1237
- v0.11.1236
- v0.11.1235
- v0.11.1234
- v0.11.1233
- v0.11.1232
- v0.11.1231
- v0.11.1230
- v0.11.1229
- v0.11.1228
- v0.11.1227
- v0.11.1226
- v0.11.1225
- v0.11.1224
- v0.11.1223
- v0.11.1222
- v0.11.1221
- v0.11.1220
- v0.11.1219
- v0.11.1218
- v0.11.1217
- v0.11.1216
- v0.11.1215
- v0.11.1214
- v0.11.1213
- v0.11.1212
- v0.11.1211
- v0.11.1210
- v0.11.1209
- v0.11.1208
- v0.11.1207
- v0.11.1206
- v0.11.1205
- v0.11.1204
- v0.11.1203
- v0.11.1202
- v0.11.1201
- v0.11.1200
- v0.11.1199
- v0.11.1198
- v0.11.1197
- v0.11.1196
- v0.11.1195
- v0.11.1194
- v0.11.1193
- v0.11.1192
- v0.11.1191
- v0.11.1190
- v0.11.1189
- v0.11.1188
- v0.11.1187
- v0.11.1186
- v0.11.1185
- v0.11.1184
- v0.11.1183
- v0.11.1182
- v0.11.1181
- v0.11.1180
- v0.11.1179
- v0.11.1178
- v0.11.1177
- v0.11.1176
- v0.11.1175
- v0.11.1174
- v0.11.1173
- v0.11.1172
- v0.11.1171
- v0.11.1170
- v0.11.1169
- v0.11.1168
- v0.11.1167
- v0.11.1166
- v0.11.1165
- v0.11.1164
- v0.11.1163
- v0.11.1162
- v0.11.1161
- v0.11.1160
- v0.11.1159
- v0.11.1158
- v0.11.1157
- v0.11.1156
- v0.11.1155
- v0.11.1154
- v0.11.1153
- v0.11.1152
- v0.11.1151
- v0.11.1150
- v0.11.1149
- v0.11.1148
- v0.11.1147
- v0.11.1146
- v0.11.1145
- v0.11.1144
- v0.11.1143
- v0.11.1142
- v0.11.1141
- v0.11.1140
- v0.11.1139
- v0.11.1138
- v0.11.1137
- v0.11.1136
- v0.11.1135
- v0.11.1134
- v0.11.1133
- v0.11.1132
- v0.11.1131
- v0.11.1130
- v0.11.1129
- v0.11.1128
- v0.11.1127
- v0.11.1126
- v0.11.1125
- v0.11.1124
- v0.11.1123
- v0.11.1122
- v0.11.1121
- v0.11.1120
- v0.11.1119
- v0.11.1118
- v0.11.1117
- v0.11.1116
- v0.11.1115
- v0.11.1114
- v0.11.1113
- v0.11.1112
- v0.11.1111
- v0.11.1110
- v0.11.1109
- v0.11.1108
- v0.11.1107
- v0.11.1106
- v0.11.1105
- v0.11.1104
- v0.11.1103
- v0.11.1102
- v0.11.1101
- v0.11.1100
- v0.11.1099
- v0.11.1098
- v0.11.1097
- v0.11.1096
- v0.11.1095
- v0.11.1094
- v0.11.1093
- v0.11.1092
- v0.11.1091
- v0.11.1090
- v0.11.1089
- v0.11.1088
- v0.11.1087
- v0.11.1086
- v0.11.1085
- v0.11.1084
- v0.11.1083
- v0.11.1082
- v0.11.1081
- v0.11.1080
- v0.11.1079
- v0.11.1078
- v0.11.1077
- v0.11.1076
- v0.11.1075
- v0.11.1074
- v0.11.1073
- v0.11.1072
- v0.11.1071
- v0.11.1070
- v0.11.1069
- v0.11.1068
- v0.11.1067
- v0.11.1066
- v0.11.1065
- v0.11.1064
- v0.11.1063
- v0.11.1062
- v0.11.1061
- v0.11.1060
- v0.11.1059
- v0.11.1058
- v0.11.1057
- v0.11.1056
- v0.11.1055
- v0.11.1054
- v0.11.1053
- v0.11.1052
- v0.11.1051
- v0.11.1050
- v0.11.1049
- v0.11.1048
- v0.11.1047
- v0.11.1046
- v0.11.1045
- v0.11.1044
- v0.11.1043
- v0.11.1042
- v0.11.1041
- v0.11.1040
- v0.11.1039
- v0.11.1038
- v0.11.1037
- v0.11.1036
- v0.11.1035
- v0.11.1034
- v0.11.1033
- v0.11.1032
- v0.11.1031
- v0.11.1030
- v0.11.1029
- v0.11.1028
- v0.11.1027
- v0.11.1026
- v0.11.1025
- v0.11.1024
- v0.11.1023
- v0.11.1022
- v0.11.1021
- v0.11.1020
- v0.11.1019
- v0.11.1018
- v0.11.1017
- v0.11.1016
- v0.11.1015
- v0.11.1014
- v0.11.1013
- v0.11.1012
- v0.11.1011
- v0.11.1010
- v0.11.1009
- v0.11.1008
- v0.11.1007
- v0.11.1006
- v0.11.1005
- v0.11.1004
- v0.11.1003
- v0.11.1002
- v0.11.1001
- v0.11.1000
- v0.11.999
- v0.11.998
- v0.11.997
- v0.11.996
- v0.11.995
- v0.11.994
- v0.11.993
- v0.11.992
- v0.11.991
- v0.11.990
- v0.11.989
- v0.11.988
- v0.11.987
- v0.11.986
- v0.11.985
- v0.11.984
- v0.11.983
- v0.11.982
- v0.11.981
- v0.11.980
- v0.11.979
- v0.11.978
- v0.11.977
- v0.11.976
- v0.11.975
- v0.11.974
- v0.11.973
- v0.11.972
- v0.11.971
- v0.11.970
- v0.11.969
- v0.11.968
- v0.11.967
- v0.11.966
- v0.11.965
- v0.11.964
- v0.11.963
- v0.11.962
- v0.11.961
- v0.11.960
- v0.11.959
- v0.11.958
- v0.11.957
- v0.11.956
- v0.11.955
- v0.11.954
- v0.11.953
- v0.11.952
- v0.11.951
- v0.11.950
- v0.11.949
- v0.11.948
- v0.11.947
- v0.11.946
- v0.11.945
- v0.11.944
- v0.11.943
- v0.11.942
- v0.11.941
- v0.11.940
- v0.11.939
- v0.11.938
- v0.11.937
- v0.11.936
- v0.11.935
- v0.11.934
- v0.11.933
- v0.11.932
- v0.11.931
- v0.11.930
- v0.11.929
- v0.11.928
- v0.11.927
- v0.11.926
- v0.11.925
- v0.11.924
- v0.11.923
- v0.11.922
- v0.11.921
- v0.11.920
- v0.11.919
- v0.11.918
- v0.11.917
- v0.11.916
- v0.11.915
- v0.11.914
- v0.11.913
- v0.11.912
- v0.11.911
- v0.11.910
- v0.11.909
- v0.11.908
- v0.11.907
- v0.11.906
- v0.11.905
- v0.11.904
- v0.11.903
- v0.11.902
- v0.11.901
- v0.11.900
- v0.11.899
- v0.11.898
- v0.11.897
- v0.11.896
- v0.11.895
- v0.11.894
- v0.11.893
- v0.11.892
- v0.11.891
- v0.11.890
- v0.11.889
- v0.11.888
- v0.11.887
- v0.11.886
- v0.11.885
- v0.11.884
- v0.11.883
- v0.11.882
- v0.11.881
- v0.11.880
- v0.11.879
- v0.11.878
- v0.11.877
- v0.11.876
- v0.11.875
- v0.11.874
- v0.11.873
- v0.11.872
- v0.11.871
- v0.11.870
- v0.11.869
- v0.11.868
- v0.11.867
- v0.11.866
- v0.11.865
- v0.11.864
- v0.11.863
- v0.11.862
- v0.11.861
- v0.11.860
- v0.11.859
- v0.11.858
- v0.11.857
- v0.11.856
- v0.11.855
- v0.11.854
- v0.11.853
- v0.11.852
- v0.11.851
- v0.11.850
- v0.11.849
- v0.11.848
- v0.11.847
- v0.11.846
- v0.11.845
- v0.11.844
- v0.11.843
- v0.11.842
- v0.11.841
- v0.11.840
- v0.11.839
- v0.11.838
- v0.11.837
- v0.11.836
- v0.11.835
- v0.11.834
- v0.11.833
- v0.11.832
- v0.11.831
- v0.11.830
- v0.11.829
- v0.11.828
- v0.11.827
- v0.11.826
- v0.11.825
- v0.11.824
- v0.11.823
- v0.11.822
- v0.11.821
- v0.11.820
- v0.11.819
- v0.11.818
- v0.11.817
- v0.11.816
- v0.11.815
- v0.11.814
- v0.11.813
- v0.11.812
- v0.11.811
- v0.11.810
- v0.11.809
- v0.11.808
- v0.11.807
- v0.11.806
- v0.11.805
- v0.11.804
- v0.11.803
- v0.11.802
- v0.11.801
- v0.11.800
- v0.11.799
- v0.11.798
- v0.11.797
- v0.11.796
- v0.11.795
- v0.11.794
- v0.11.793
- v0.11.792
- v0.11.791
- v0.11.790
- v0.11.789
- v0.11.788
- v0.11.787
- v0.11.786
- v0.11.785
- v0.11.784
- v0.11.783
- v0.11.782
- v0.11.781
- v0.11.780
- v0.11.779
- v0.11.778
- v0.11.777
- v0.11.776
- v0.11.775
- v0.11.774
- v0.11.773
- v0.11.772
- v0.11.771
- v0.11.770
- v0.11.769
- v0.11.768
- v0.11.767
- v0.11.766
- v0.11.765
- v0.11.764
- v0.11.763
- v0.11.762
- v0.11.761
- v0.11.760
- v0.11.759
- v0.11.758
- v0.11.757
- v0.11.756
- v0.11.755
- v0.11.754
- v0.11.753
- v0.11.752
- v0.11.751
- v0.11.750
- v0.11.749
- v0.11.748
- v0.11.747
- v0.11.746
- v0.11.745
- v0.11.744
- v0.11.743
- v0.11.742
- v0.11.741
- v0.11.740
- v0.11.739
- v0.11.738
- v0.11.737
- v0.11.736
- v0.11.735
- v0.11.734
- v0.11.733
- v0.11.732
- v0.11.731
- v0.11.730
- v0.11.729
- v0.11.728
- v0.11.727
- v0.11.726
- v0.11.725
- v0.11.724
- v0.11.723
- v0.11.722
- v0.11.721
- v0.11.720
- v0.11.719
- v0.11.718
- v0.11.717
- v0.11.716
- v0.11.715
- v0.11.714
- v0.11.713
- v0.11.712
- v0.11.711
- v0.11.710
- v0.11.709
- v0.11.708
- v0.11.707
- v0.11.706
- v0.11.705
- v0.11.704
- v0.11.703
- v0.11.702
- v0.11.701
- v0.11.700
- v0.11.699
- v0.11.698
- v0.11.697
- v0.11.696
- v0.11.695
- v0.11.694
- v0.11.693
- v0.11.692
- v0.11.691
- v0.11.690
- v0.11.689
- v0.11.688
- v0.11.687
- v0.11.686
- v0.11.685
- v0.11.684
- v0.11.683
- v0.11.682
- v0.11.681
- v0.11.680
- v0.11.679
- v0.11.678
- v0.11.677
- v0.11.676
- v0.11.675
- v0.11.674
- v0.11.673
- v0.11.672
- v0.11.671
- v0.11.670
- v0.11.669
- v0.11.668
- v0.11.667
- v0.11.666
- v0.11.665
- v0.11.664
- v0.11.663
- v0.11.662
- v0.11.661
- v0.11.660
- v0.11.659
- v0.11.658
- v0.11.657
- v0.11.656
- v0.11.655
- v0.11.654
- v0.11.653
- v0.11.652
- v0.11.651
- v0.11.650
- v0.11.649
- v0.11.648
- v0.11.647
- v0.11.646
- v0.11.645
- v0.11.644
- v0.11.643
- v0.11.642
- v0.11.641
- v0.11.640
- v0.11.639
- v0.11.638
- v0.11.637
- v0.11.636
- v0.11.635
- v0.11.634
- v0.11.633
- v0.11.632
- v0.11.631
- v0.11.630
- v0.11.629
- v0.11.628
- v0.11.627
- v0.11.626
- v0.11.625
- v0.11.624
- v0.11.623
- v0.11.622
- v0.11.621
- v0.11.620
- v0.11.619
- v0.11.618
- v0.11.617
- v0.11.616
- v0.11.615
- v0.11.614
- v0.11.613
- v0.11.612
- v0.11.611
- v0.11.610
- v0.11.609
- v0.11.608
- v0.11.607
- v0.11.606
- v0.11.605
- v0.11.604
- v0.11.603
- v0.11.602
- v0.11.601
- v0.11.600
- v0.11.599
- v0.11.598
- v0.11.597
- v0.11.596
- v0.11.595
- v0.11.594
- v0.11.593
- v0.11.592
- v0.11.591
- v0.11.590
- v0.11.589
- v0.11.588
- v0.11.587
- v0.11.586
- v0.11.585
- v0.11.584
- v0.11.583
- v0.11.582
- v0.11.581
- v0.11.580
- v0.11.579
- v0.11.578
- v0.11.577
- v0.11.576
- v0.11.575
- v0.11.574
- v0.11.573
- v0.11.572
- v0.11.571
- v0.11.570
- v0.11.569
- v0.11.568
- v0.11.567
- v0.11.566
- v0.11.565
- v0.11.564
- v0.11.563
- v0.11.562
- v0.11.561
- v0.11.560
- v0.11.559
- v0.11.558
- v0.11.557
- v0.11.556
- v0.11.555
- v0.11.554
- v0.11.553
- v0.11.552
- v0.11.551
- v0.11.550
- v0.11.549
- v0.11.548
- v0.11.547
- v0.11.546
- v0.11.545
- v0.11.544
- v0.11.543
- v0.11.542
- v0.11.541
- v0.11.540
- v0.11.539
- v0.11.538
- v0.11.537
- v0.11.536
- v0.11.535
- v0.11.534
- v0.11.533
- v0.11.532
- v0.11.531
- v0.11.530
- v0.11.529
- v0.11.528
- v0.11.527
- v0.11.526
- v0.11.525
- v0.11.524
- v0.11.523
- v0.11.522
- v0.11.521
- v0.11.520
- v0.11.519
- v0.11.518
- v0.11.517
- v0.11.516
- v0.11.515
- v0.11.514
- v0.11.513
- v0.11.512
- v0.11.511
- v0.11.510
- v0.11.509
- v0.11.508
- v0.11.507
- v0.11.506
- v0.11.505
- v0.11.504
- v0.11.503
- v0.11.502
- v0.11.501
- v0.11.500
- v0.11.499
- v0.11.498
- v0.11.497
- v0.11.496
- v0.11.495
- v0.11.494
- v0.11.493
- v0.11.492
- v0.11.491
- v0.11.490
- v0.11.489
- v0.11.488
- v0.11.487
- v0.11.486
- v0.11.485
- v0.11.484
- v0.11.483
- v0.11.482
- v0.11.481
- v0.11.480
- v0.11.479
- v0.11.478
- v0.11.477
- v0.11.476
- v0.11.475
- v0.11.474
- v0.11.473
- v0.11.472
- v0.11.471
- v0.11.470
- v0.11.469
- v0.11.468
- v0.11.467
- v0.11.466
- v0.11.465
- v0.11.464
- v0.11.463
- v0.11.462
- v0.11.461
- v0.11.460
- v0.11.459
- v0.11.458
- v0.11.457
- v0.11.456
- v0.11.455
- v0.11.454
- v0.11.453
- v0.11.452
- v0.11.451
- v0.11.450
- v0.11.449
- v0.11.448
- v0.11.447
- v0.11.446
- v0.11.445
- v0.11.444
- v0.11.443
- v0.11.442
- v0.11.441
- v0.11.440
- v0.11.439
- v0.11.438
- v0.11.437
- v0.11.436
- v0.11.435
- v0.11.434
- v0.11.433
- v0.11.432
- v0.11.431
- v0.11.430
- v0.11.429
- v0.11.428
- v0.11.427
- v0.11.426
- v0.11.425
- v0.11.424
- v0.11.423
- v0.11.422
- v0.11.421
- v0.11.420
- v0.11.419
- v0.11.418
- v0.11.417
- v0.11.416
- v0.11.415
- v0.11.414
- v0.11.413
- v0.11.412
- v0.11.411
- v0.11.410
- v0.11.409
- v0.11.408
- v0.11.407
- v0.11.406
- v0.11.405
- v0.11.404
- v0.11.403
- v0.11.402
- v0.11.401
- v0.11.400
- v0.11.399
- v0.11.398
- v0.11.397
- v0.11.396
- v0.11.395
- v0.11.394
- v0.11.393
- v0.11.392
- v0.11.391
- v0.11.390
- v0.11.389
- v0.11.388
- v0.11.387
- v0.11.386
- v0.11.385
- v0.11.384
- v0.11.383
- v0.11.382
- v0.11.381
- v0.11.380
- v0.11.379
- v0.11.378
- v0.11.377
- v0.11.376
- v0.11.375
- v0.11.374
- v0.11.373
- v0.11.372
- v0.11.371
- v0.11.370
- v0.11.369
- v0.11.368
- v0.11.367
- v0.11.366
- v0.11.365
- v0.11.364
- v0.11.363
- v0.11.362
- v0.11.361
- v0.11.360
- v0.11.359
- v0.11.358
- v0.11.357
- v0.11.356
- v0.11.355
- v0.11.354
- v0.11.353
- v0.11.352
- v0.11.351
- v0.11.350
- v0.11.349
- v0.11.348
- v0.11.347
- v0.11.346
- v0.11.345
- v0.11.344
- v0.11.343
- v0.11.342
- v0.11.341
- v0.11.340
- v0.11.339
- v0.11.338
- v0.11.337
- v0.11.336
- v0.11.335
- v0.11.334
- v0.11.333
- v0.11.332
- v0.11.331
- v0.11.330
- v0.11.329
- v0.11.328
- v0.11.327
- v0.11.326
- v0.11.325
- v0.11.324
- v0.11.323
- v0.11.322
- v0.11.321
- v0.11.320
- v0.11.319
- v0.11.318
- v0.11.317
- v0.11.316
- v0.11.315
- v0.11.314
- v0.11.313
- v0.11.312
- v0.11.311
- v0.11.310
- v0.11.309
- v0.11.308
- v0.11.307
- v0.11.306
- v0.11.305
- v0.11.304
- v0.11.303
- v0.11.302
- v0.11.301
- v0.11.300
- v0.11.299
- v0.11.298
- v0.11.297
- v0.11.296
- v0.11.295
- v0.11.294
- v0.11.293
- v0.11.292
- v0.11.291
- v0.11.290
- v0.11.289
- v0.11.288
- v0.11.287
- v0.11.286
- v0.11.285
- v0.11.284
- v0.11.283
- v0.11.282
- v0.11.281
- v0.11.280
- v0.11.279
- v0.11.278
- v0.11.277
- v0.11.276
- v0.11.275
- v0.11.274
- v0.11.273
- v0.11.272
- v0.11.271
- v0.11.270
- v0.11.269
- v0.11.268
- v0.11.267
- v0.11.266
- v0.11.265
- v0.11.264
- v0.11.263
- v0.11.262
- v0.11.261
- v0.11.260
- v0.11.259
- v0.11.258
- v0.11.257
- v0.11.256
- v0.11.255
- v0.11.254
- v0.11.253
- v0.11.252
- v0.11.251
- v0.11.250
- v0.11.249
- v0.11.248
- v0.11.247
- v0.11.246
- v0.11.245
- v0.11.244
- v0.11.243
- v0.11.242
- v0.11.241
- v0.11.240
- v0.11.239
- v0.11.238
- v0.11.237
- v0.11.236
- v0.11.235
- v0.11.234
- v0.11.233
- v0.11.232
- v0.11.231
- v0.11.230
- v0.11.229
- v0.11.228
- v0.11.227
- v0.11.226
- v0.11.225
- v0.11.224
- v0.11.223
- v0.11.222
- v0.11.221
- v0.11.220
- v0.11.219
- v0.11.218
- v0.11.217
- v0.11.216
- v0.11.215
- v0.11.214
- v0.11.213
- v0.11.212
- v0.11.211
- v0.11.210
- v0.11.209
- v0.11.208
- v0.11.207
- v0.11.206
- v0.11.205
- v0.11.204
- v0.11.203
- v0.11.202
- v0.11.201
- v0.11.200
- v0.11.199
- v0.11.198
- v0.11.197
- v0.11.196
- v0.11.195
- v0.11.194
- v0.11.193
- v0.11.192
- v0.11.191
- v0.11.190
- v0.11.189
- v0.11.188
- v0.11.187
- v0.11.186
- v0.11.185
- v0.11.184
- v0.11.183
- v0.11.182
- v0.11.181
- v0.11.180
- v0.11.179
- v0.11.178
- v0.11.177
- v0.11.176
- v0.11.175
- v0.11.174
- v0.11.173
- v0.11.172
- v0.11.171
- v0.11.170
- v0.11.169
- v0.11.168
- v0.11.167
- v0.11.166
- v0.11.165
- v0.11.164
- v0.11.163
- v0.11.162
- v0.11.161
- v0.11.160
- v0.11.159
- v0.11.158
- v0.11.157
- v0.11.156
- v0.11.155
- v0.11.154
- v0.11.153
- v0.11.152
- v0.11.151
- v0.11.150
- v0.11.149
- v0.11.148
- v0.11.147
- v0.11.146
- v0.11.145
- v0.11.144
- v0.11.143
- v0.11.142
- v0.11.141
- v0.11.140
- v0.11.139
- v0.11.138
- v0.11.137
- v0.11.136
- v0.11.135
- v0.11.134
- v0.11.133
- v0.11.132
- v0.11.131
- v0.11.130
- v0.11.129
- v0.11.128
- v0.11.127
- v0.11.126
- v0.11.125
- v0.11.124
- v0.11.123
- v0.11.122
- v0.11.121
- v0.11.120
- v0.11.119
- v0.11.118
- v0.11.117
- v0.11.116
- v0.11.115
- v0.11.114
- v0.11.113
- v0.11.112
- v0.11.111
- v0.11.110
- v0.11.109
- v0.11.108
- v0.11.107
- v0.11.106
- v0.11.105
- v0.11.104
- v0.11.103
- v0.11.102
- v0.11.101
- v0.11.100
- v0.11.99
- v0.11.98
- v0.11.97
- v0.11.96
- v0.11.95
- v0.11.94
- v0.11.93
- v0.11.92
- v0.11.91
- v0.11.90
- v0.11.89
- v0.11.88
- v0.11.87
- v0.11.86
- v0.11.85
- v0.11.84
- v0.11.83
- v0.11.82
- v0.11.81
- v0.11.80
- v0.11.79
- v0.11.78
- v0.11.77
- v0.11.76
- v0.11.75
- v0.11.74
- v0.11.73
- v0.11.72
- v0.11.71
- v0.11.70
- v0.11.69
- v0.11.68
- v0.11.67
- v0.11.66
- v0.11.65
- v0.11.64
- v0.11.63
- v0.11.62
- v0.11.61
- v0.11.60
- v0.11.59
- v0.11.58
- v0.11.57
- v0.11.56
- v0.11.55
- v0.11.54
- v0.11.53
- v0.11.52
- v0.11.51
- v0.11.50
- v0.11.49
- v0.11.48
- v0.11.47
- v0.11.46
- v0.11.45
- v0.11.44
- v0.11.43
- v0.11.42
- v0.11.41
- v0.11.40
- v0.11.39
- v0.11.38
- v0.11.37
- v0.11.36
- v0.11.35
- v0.11.34
- v0.11.33
- v0.11.32
- v0.11.31
- v0.11.30
- v0.11.29
- 0.11.28
- 0.11.27
- 0.11.26
- 0.11.25
- 0.11.24
- 0.11.21
- 0.11.20
- 0.11.19
- 0.11.18
- v0.11.17
- v0.11.16
- v0.11.15
- v0.11.14
- v0.11.13
- v0.11.12
- v0.11.11
- v0.11.10
- v0.11.9
- v0.11.8
- v0.11.7
- v0.11.6
- v0.11.5
- v0.11.4
- v0.11.3
- v0.11.2
- v0.11.1
- v0.11.0
- 0.10.16
- 0.10.15
- 0.10.14
- 0.10.13
- 0.10.12
- 0.10.11
- 0.10.10
- 0.10.9
- 0.10.8
- 0.10.7
- 0.10.6
- 0.10.5
- 0.10.4
- 0.10.3
- 0.10.2
- 0.10.1
- 0.10.0
- 0.9.1
- 0.9.0
- 0.8.7
- 0.8.6
- 0.8.5
- 0.3.11
- 0.3.10
- 0.3.9
- 0.2.6
- 0.0.8
- 0.0.7
- 0.0.6
- 0.0.5
- 0.0.4
- 0.0.3
- 0.0.2
- 0.0.1
- dev-release
- dev-feat/tooltip
- dev-feat/remove-old-tooltip
- dev-refactor/removing-and-changing-unnecessary-chat-things
- dev-refactor/changing-styling-of-the-chat-adding-a-flat-style
- dev-copilot/add-common-parameters-docs
- dev-master
- dev-feat/new-accordion
- dev-refactor/remove-unused-mixin-button
- dev-refactor/changing-tab-button-styling
- dev-refactor/changing-accordion-button-styling
- dev-refactor/init-moving-gallery-modal-image
- dev-refactor/design-builder
- dev-feature/style-editor
- dev-copilot/analyze-dead-code
- dev-feat/reduced-vars
- dev-copilot/convert-components-to-token-create
- dev-dependabot/npm_and_yarn/qs-6.14.2
- dev-feat/css-vars-editor
- dev-feat/preloader-no-border-utility
- dev-fix/tags-not-working-in-preloader
- dev-fix/progressbar-no-preloader-styling
- dev-feat/css-vars
- dev-feat/remove-sass-vars
- dev-feat/utility-to-exclude-elements-from-preloading-by-hiding-them
- dev-dependabot/npm_and_yarn/lodash-4.17.23
- dev-feat/example-of-linked-segment-cards
- dev-dependabot/npm_and_yarn/js-yaml-3.14.2
- dev-fix/container-querys-openstreetmap
- dev-refactor/creating-object-docummentation-template
- dev-feat/toc-article
- dev-refactor/compact-collection-heading-font-size
- dev-test/safari-font-external-monitor
- dev-fix/added-node-modules-to-webpack-scss
- dev-fix/refactor-expand-accordion
- dev-feat/content-jump-observer-prevention
- dev-feat/css-layers-instead-of-important
- dev-feat/js-toggle-attribute-init
- dev-fix/brand-debounce-resize
- dev-feat/color-menu-items-in-drawer
- dev-feat/nav-component-different-styling
- dev-feat/date
- dev-feat/image-in-card
- dev-feat/image-in-components
- dev-feat/install-npm
- dev-feat/added-nav-item-background-color
- dev-feat/added-color-variable-for-nav-item
- dev-chore/hero-textColor
- dev-feat/init-tailwind-css
- dev-feature/php8-compability
- dev-8693kkpm2
- dev-fix/buttons-with-word-wrap
- dev-revert-849-adam-bugfix
- dev-fix/gutenberg-images-centering
- dev-fix/js-pagination-aria-label
- dev-feature/Pusha-nya-states-i-kartan-till-urlen-CU-865c8rh2h-2
- dev-fix/quicklinks-stuck-behavior
- dev-feature/Hela-textplattan-lnkad-i-Posts-modulens-layout-segment-CU-865c6dz40
- dev-feature/testing-mobile
- dev-feature/curator-block
- dev-feature/leaflet-testing
- dev-feature/post-icons-styling
- dev-feature/scoped-nav-gap
- dev-ci/test-workflow-update
- dev-feature/3.0/siteselector
- dev-feature/like-posts-styling
- dev-fix/quick-link-z-index
- dev-feature/like-posts
- dev-feature/posts-as-collection
- dev-feature/dropdown-subitems-styling
- dev-fix/main-menu-error
- dev-feature/dropdown-possible-styling
- dev-fix/form-submit-button
- dev-fix/segment-spacing
- dev-feature/mixins-documentation
- dev-feature/mixins-list-documentation
- dev-fix/remove-card-styling
- dev-feature/tooltip
- dev-feature/modal-tab-index
- dev-feature/policy-logic
- dev-feature/hero-video-pause
- dev-feature/ken-burns
- dev-feature/form-refactoring
- dev-feature/validation-changes
- dev-feature/checkbox-validation
- dev-feature/Feedback-filuppladdning-formulr-CU-3qfy5er
- dev-feature/file-upload-list-rendering
- dev-fix/form-no-values
- dev-feature/field-hidden-label
- dev-feature/modal-close-color
- dev-feature/iframe-relative
- dev-feature/iframe-video
- dev-fix/iframe-video-link-color
- dev-feature/map-iframe-implementation
- dev-3.0/fix/iframe-position
- dev-3.0/feature/testimonials-as-slider
- dev-fix/testimonials-shadow-bug
- dev-feat/update-php
- dev-feature/image-sidebar-styling
- dev-feature/card-footer-border-removal
- dev-feature/card-border-radius-fix
- dev-fix/long-gallery-img-caption
- dev-feature/Text-utility-added
- dev-datebadge-color-fix
- dev-feature/hamburger-menu
- dev-feature/grid
- dev-block
- dev-fix/table-overflow
- dev-fix/remove-100-width-CU-1kxu0f1
- dev-feature/documentation-refresh
- dev-build-opmtimize
- dev-feature/3.0/slider-focus
- dev-feature/3.0/sections
- dev-wip/3.0/sections-general
- dev-hotfix/slider-item-word-break
- dev-feature/accessability-docs
- dev-hotfix/select-arrow-fix
- dev-fix/table-sort
- dev-develop
- dev-feature/nav
- dev-feature/collection
- dev-feature/date-badge
- dev-feature/card-title-and-layout
- dev-github-actions
- dev-feature/datepicker-value-event
- dev-wip/dynamic-top-nav
- dev-wip/nav-dynamic-children
- dev-wip/footer-component
- dev-wip/side-nav-dynamic-children
- dev-wip/card-component-rework
- dev-feature/textarea-usage-doc
- dev-feature/tags-usage-doc
- dev-feature/tabs-usage-doc
- dev-feature/option-usage-doc
- dev-feature/split-button-usage-doc
- dev-wip/doc-blade-cleanup
- dev-wip/doc-example-blade-bug
- dev-wip/img-usage-doc
- dev-feature/git-master-commit-hook
- dev-wip/git-master-commit-hook
- dev-wip/redesign
- dev-feature/react-init
- dev-wip/button-design
- dev-wip/icon-categories
- dev-wip/notification
- dev-wip/calendar
- dev-wip/button-component-rework
- dev-feature/card-button-usage-refactor
- dev-feature/button-group-fix
- dev-feature/toggle-script-refactor
- dev-feature/button-controller-cleanup
- dev-feature/icon-generator-fix
- dev-feature/Dropdown-mobile
- dev-feature/button-fix
- dev-wip/button-fix
- dev-feature/form
- dev-feature/icon-button-hover-color
- dev-feature/doc-ui
- dev-wip/doc-ui
- dev-feature/code-prism
- dev-hotfix/icons-testimonials
- dev-feature/Testimonials-layout
- dev-feature/material-icon-package
- dev-feature/Testimonials
- dev-feature/php-linter
- dev-feature/sections
- dev-feature/scss-cleanup
- dev-feature/Cards-accordion
- dev-feature/general-doc
- dev-feature/grid-ie-11-fix
- dev-feature/Gallery-IE11-compabillity
- dev-feature/list-merge-conflict
- dev-wip/text-button
- dev-feature/base-class-generator
- dev-feature/Card-dropdown
- dev-feature/sass-linting
- dev-feature/disabled-button-contrast
- dev-feature/notice-text-color
- dev-feature/toggle-only-outline
- dev-wip/toggle-only-outline
- dev-FW2-82-Cards
- dev-feature/FW2-79-split-button
- dev-wip/FW2-79-split-button
- dev-feature/FW2-91-disabled-buttons
- dev-feature/FW2-90-default-button-color
- dev-feature/FW2-80-drop
- dev-wip/FW2-80-drop
- dev-wip/FW2-77-button-toggle
- dev-hotfix/syntaxerr
- dev-feature/deploy
- dev-feature/FW2-78-button-group
- dev-wip/FW2-78-button-group
- dev-feature/FW2-72-notice-icon-size
- dev-FW2-76-gallery
- dev-feature/FW2-85-improve-customization
- dev-fix-button
- dev-feature/fs
- dev-feature/untrack-icons
- dev-feature/FW2-69-Button
- dev-feature/FW2-72-Notice
- dev-feature/FW2-68-image
- dev-feature/sass_variables
- dev-h22
- dev-feature/animations
This package is auto-updated.
Last update: 2026-05-13 13:07:09 UTC
README
Styleguide
Summary
The style guide is intended for websites within Helsingborgs stad / Municipio Websites and others who use our platform. The guide provides examples, markup and themes for our standardized components. The Helsingborg Styleguide is a flexible and minimalistic component-based framework built in the BEM standard & designed around the Atomic Design principle.
Release Notes
Requirements
- NodeJS >= 16
- PHP >= 8
- Composer
Installation
- Clone the repo:
git clone git@github.com:helsingborg-stad/styleguide.git
- Run the build script in the cloned project:
cd styleguide && php build.php
Development
- Start by running the steps under Installation.
- Run webpack in watch-mode:
npm run watch
Storybook (Blade-rendered components)
Storybook is configured as a frontend shell while components continue to be rendered by Blade.
Run:
npm run storybook
This starts:
- Storybook UI on
http://localhost:6006 - PHP server for Blade rendering on
http://127.0.0.1:8000
In Storybook, open Blade/Components and select a component route from controls.
Optional: point Storybook to another Blade server using:
STORYBOOK_BLADE_BASE_URL=http://your-host:port npm run storybook:ui
Deployment
The GitHub workflow .github/workflows/build-and-deploy.yml supports deployments to different stages using GitHub Environments.
Configure deploy stages
- In GitHub, go to Settings → Environments for this repository.
- Create environments for the stages you want to deploy to (for example
stageandproduction). - Add environment Secrets for deploy values:
BACKUP_PATHDEPLOY_PATHDEPLOY_HOSTDEPLOY_USERDEPLOY_KEYDEPLOY_PORT
- Set environment-specific secret values (
stageandproduction) so each environment can use separate SSH host/user/port and deploy paths.
Run deployments
- Automatic deploys by branch:
- push to
stagedeploys tostage - push to
masterdeploys toproduction
- push to
- Stage or production (manual): run the workflow Build and deploy styleguide from the Actions tab and select
deploy_stage(stageorproduction).
Deploy stage controls which GitHub Environment secrets are used (stage branch -> stage, master branch -> production, or selected deploy_stage for manual runs), so stage and production can use separate SSH configs and deploy paths.
Design Tokens System
This project uses design tokens as the single source of truth for visual values (spacing, radius, typography, color, shadow). The token system is built to keep component styles consistent while still allowing controlled overrides in consuming implementations.
Goal
- Keep design decisions centralized and reusable.
- Avoid hardcoded one-off values in component styles.
- Make components themeable at runtime through CSS custom properties.
- Keep the API stable and explicit through JSON schemas and component token declarations.
Architecture (how it works)
- Global tokens source:
source/data/design-tokens.json- Defines categories and CSS variable defaults.
- Generated Sass output:
source/sass/setting/_design-tokens.scss- Auto-generated from the JSON file by:
npm run tokens
- Component token declaration:
source/components/<component>/component.json
- Each component lists which global tokens it is allowed to consume in its
tokensarray. - Vite still supports the legacy
source/data/c-*.jsonlookup as a fallback, but new component work should use the component-localcomponent.jsonfile.
- Build-time token injection:
vite.config.mjs
- Exposes a custom Sass function
getComponentTokens($name)that reads token arrays fromsource/components/<component>/component.json.
- Component-scoped token mapping:
source/sass/mixin/_tokens.scss@include tokens.create(...)maps global tokens (--color--surface) to component-scoped tokens (--c-card--color--surface).- Components then consume these values with
tokens.getRawValue(...)ortokens.getCalculatedValue(...).
Intended Usage
1) Define or update global tokens
Edit source/data/design-tokens.json and run:
npm run tokens
This regenerates source/sass/setting/_design-tokens.scss.
Example (global token):
{
"id": "radius",
"label": "Radius",
"settings": [
{
"variable": "--border-radius",
"label": "Border Radius",
"type": "range",
"default": 1,
"min": 0,
"max": 5,
"step": 0.25
}
]
}
2) Declare which tokens a component may consume
Example in source/components/button/component.json:
{
"tokens": [
"base",
"border-radius",
"border-width",
"space",
"color--primary",
"color--surface",
"shadow"
]
}
3) Create component-local token aliases in Sass
@use "../mixin/tokens"; $_: "c-example"; @include tokens.create($_, getComponentTokens($_)); .c-example { border-radius: tokens.getCalculatedValue($_, "border-radius"); background: tokens.getRawValue($_, "color--surface"); color: tokens.getRawValue($_, "color--surface-contrast"); filter: tokens.getCalculatedValue($_, "shadow", 2); padding: tokens.getCalculatedValue($_, "space", 2); }
4) Override tokens in implementation (theme or local instance)
Global theme override:
:root { --color--primary: #0052cc; --color--primary-contrast: #ffffff; --border-radius: 0.75; }
Component instance override:
.c-card--campaign { --c-card--color--surface: #111827; --c-card--color--surface-contrast: #f9fafb; --c-card--border-radius: 1.5; }
Runtime override with JavaScript:
const card = document.querySelector('.c-card'); card?.style.setProperty('--c-card--color--surface', '#1f2937');
Architectural Flexibility
- Scoped customization: The same component can have different appearances by overriding
--c-<component>--*per instance. - Global theming: Change
:roottoken values to update all components consistently. - Explicit token mapping only in
tokens.create(...):- Every consumed token must be listed in the component token manifest.
- Companion tokens such as
-borderand-altmust be declared in global tokens and referenced explicitly. - Shadow internals (
shadow-color,shadow-amount) must be listed directly.
Architectural Limitations (important)
- Do not edit generated token Sass directly:
source/sass/setting/_design-tokens.scssis generated and overwritten.
- Allowed token names are schema-driven:
- Component token arrays are validated against
source/design-tokens-schema.jsonenum values.
- Component token arrays are validated against
- Component must declare tokens it consumes:
- If a token is missing from
source/components/<component>/component.json, it will not be mapped bytokens.create(...).
- If a token is missing from
tokens.getCalculatedValue(...)assumes scale-based numeric usage:- It returns
calc(var(--c-...--token) * var(--base) * multiplier)(except special cases likebaseandshadow). - For raw values or non-scale tokens, use
tokens.getRawValue(...).
- It returns
- No implicit companion generation:
- Token behavior is declarative; add companion tokens explicitly in token JSON and component manifests.
Recommended Workflow
- Add/update token definitions in
source/data/design-tokens.json. - Run
npm run tokens. - Add token usage list in
source/components/your-component/component.json. - Consume via
@include tokens.create($_, getComponentTokens($_));in component Sass. - Use
tokens.getRawValue(...)andtokens.getCalculatedValue(...)in styles. - Validate by running watch/build and checking component previews.
Global Token Reference
The base token surface lives in source/data/design-tokens.json. These are the system-level tokens that components consume through tokens.create(...).
In the tables below, Can the user manipulate it? means the supported direct customization path in the token source and design-token UI. Tokens marked No are locked or derived tokens and should normally be changed indirectly by editing their upstream inputs. They can still be overridden in raw CSS if absolutely necessary, but that is not the intended primary workflow.
Base
| Token | Purpose | How it is derived | Can the user manipulate it? |
|---|---|---|---|
--base |
Foundation unit for spacing, size, and radius calculations across the system. | Defaults to calc(1rem/2). Locked because it is a system baseline rather than a regular theme knob. |
No, not as a primary UI/token-source control. Change indirectly through root sizing or raw CSS only if the whole system baseline must move. |
--base-font-size |
Root type size that drives the type scale. | Defaults to 16px with a 18px option. All computed font-size tokens derive from it. |
Yes. |
Layout
| Token | Purpose | How it is derived | Can the user manipulate it? |
|---|---|---|---|
--container-width-multiplier |
Controls the main content width scale. | Direct numeric token. Default 160. |
Yes. |
--container-width |
Final container width token used by layouts. | Derived as calc(var(--base) * var(--container-width-multiplier)). |
No. Change --container-width-multiplier or --base instead. |
--container-width-wide-multiplier |
Controls how much wider the wide container is than the default container. | Direct numeric token. Default 1.25. |
Yes. |
--container-width-wide |
Final wide-container width token. | Derived as calc(var(--container-width) * var(--container-width-wide-multiplier)). |
No. Change --container-width-wide-multiplier or upstream container tokens instead. |
Radius
| Token | Purpose | How it is derived | Can the user manipulate it? |
|---|---|---|---|
--border-radius |
Radius scale input used by components for rounded corners. | Direct numeric token. Default 1. Components usually multiply it by --base. |
Yes. |
--corner-shape |
Controls the corner rendering mode where corner-shape is used. |
Direct select token. Default round. |
Yes. |
Typography
| Token | Purpose | How it is derived | Can the user manipulate it? |
|---|---|---|---|
--font-family-base |
Default body font family. | Direct font token. Default "Roboto", sans-serif. |
Yes. |
--font-family-heading |
Heading font family. | Defaults to var(--font-family-base), so it inherits the body font unless explicitly changed. |
Yes. |
--font-family-code |
Monospace/code font family. | Direct token with a fixed default stack. Marked locked. | No, not through the intended token UI flow. |
--font-size-scale-ratio |
Ratio used to generate the full font-size scale. | Direct select token. Default 1.250. |
Yes. |
--font-weight-normal |
Default text weight. | Direct select token. Default 400. |
Yes. |
--font-weight-medium |
Medium emphasis font weight. | Direct select token. Default 500. |
Yes. |
--font-weight-bold |
Strong emphasis font weight. | Direct select token. Default 700. |
Yes. |
--font-weight-heading |
Default heading weight. | Direct select token. Default 700. |
Yes. |
--line-height-base |
Default body line height. | Direct numeric token. Default 1.625. |
Yes. |
--line-height-heading |
Default heading line height. | Direct numeric token. Default 1.33. |
Yes. |
--letter-spacing-base |
Default text letter spacing. | Direct numeric token. Default 0em. |
Yes. |
Font Sizes
| Token | Purpose | How it is derived | Can the user manipulate it? |
|---|---|---|---|
--font-size-80 |
Two steps below the base type size. | Derived as calc(var(--base-font-size) * pow(var(--font-size-scale-ratio), -2)). |
No. Change --base-font-size or --font-size-scale-ratio instead. |
--font-size-90 |
One step below the base type size. | Derived as calc(var(--base-font-size) * pow(var(--font-size-scale-ratio), -1)). |
No. Change --base-font-size or --font-size-scale-ratio instead. |
--font-size-100 |
Base type size token. | Derived as var(--base-font-size). |
No. Change --base-font-size instead. |
--font-size-200 |
One step above the base type size. | Derived as calc(var(--base-font-size) * pow(var(--font-size-scale-ratio), 1)). |
No. Change --base-font-size or --font-size-scale-ratio instead. |
--font-size-300 |
Two steps above the base type size. | Derived as calc(var(--base-font-size) * pow(var(--font-size-scale-ratio), 2)). |
No. Change --base-font-size or --font-size-scale-ratio instead. |
--font-size-400 |
Three steps above the base type size. | Derived as calc(var(--base-font-size) * pow(var(--font-size-scale-ratio), 3)). |
No. Change --base-font-size or --font-size-scale-ratio instead. |
--font-size-500 |
Four steps above the base type size. | Derived as calc(var(--base-font-size) * pow(var(--font-size-scale-ratio), 4)). |
No. Change --base-font-size or --font-size-scale-ratio instead. |
--font-size-600 |
Five steps above the base type size. | Derived as calc(var(--base-font-size) * pow(var(--font-size-scale-ratio), 5)). |
No. Change --base-font-size or --font-size-scale-ratio instead. |
--font-size-700 |
Six steps above the base type size. | Derived as calc(var(--base-font-size) * pow(var(--font-size-scale-ratio), 6)). |
No. Change --base-font-size or --font-size-scale-ratio instead. |
--font-size-800 |
Seven steps above the base type size. | Derived as calc(var(--base-font-size) * pow(var(--font-size-scale-ratio), 7)). |
No. Change --base-font-size or --font-size-scale-ratio instead. |
Borders
| Token | Purpose | How it is derived | Can the user manipulate it? |
|---|---|---|---|
--border-width |
Base border width token for UI elements. | Direct numeric token. Default 0.125. |
Yes. |
--color--border-mix-amount |
Mix ratio used when generating derived *-border companion colors. |
Direct percentage token. Default 10%. |
Yes. |
Spacing
| Token | Purpose | How it is derived | Can the user manipulate it? |
|---|---|---|---|
--space |
Standard internal spacing token for paddings and margins inside components. | Direct numeric token. Default 1. |
Yes. |
--outer-space |
Spacing token for gaps between components or outer layout rhythm. | Direct numeric token. Default 1. |
Yes. |
Shadows
| Token | Purpose | How it is derived | Can the user manipulate it? |
|---|---|---|---|
--shadow-color |
Base color used by shadow formulas. | Direct RGBA token. Default rgba(0, 0, 0, 0.1). |
Yes. |
--shadow-amount |
Global multiplier for shadow intensity. | Direct numeric token. Default 0.7. Components typically combine it with --base in shadow calculations. |
Yes. |
Brand Colors
| Token | Purpose | How it is derived | Can the user manipulate it? |
|---|---|---|---|
--color--primary |
Main brand/action color. | Direct color token. Default #2d2d2d. |
Yes. |
--color--primary-contrast |
Text/icon color on top of primary backgrounds. | Direct color token. Default #ffffff. |
Yes. |
--color--primary-border |
Border/emphasis companion for primary surfaces. | Derived as color-mix(in srgb, var(--color--primary-contrast) var(--color--border-mix-amount), var(--color--primary)). |
No. Change --color--primary, --color--primary-contrast, or --color--border-mix-amount instead. |
--color--primary-alt |
Softer alternate primary surface. | Derived as color-mix(in srgb, var(--color--primary-contrast) var(--color--alt-mix-amount), var(--color--primary)). |
No. Change --color--primary, --color--primary-contrast, or --color--alt-mix-amount instead. |
--color--secondary |
Secondary brand color. | Direct color token. Default #6e6e6e. |
Yes. |
--color--secondary-contrast |
Text/icon color on top of secondary backgrounds. | Direct color token. Default #ffffff. |
Yes. |
--color--secondary-border |
Border/emphasis companion for secondary surfaces. | Derived as color-mix(in srgb, var(--color--secondary-contrast) var(--color--border-mix-amount), var(--color--secondary)). |
No. Change --color--secondary, --color--secondary-contrast, or --color--border-mix-amount instead. |
--color--secondary-alt |
Softer alternate secondary surface. | Derived as color-mix(in srgb, var(--color--secondary-contrast) var(--color--alt-mix-amount), var(--color--secondary)). |
No. Change --color--secondary, --color--secondary-contrast, or --color--alt-mix-amount instead. |
Layout Colors
| Token | Purpose | How it is derived | Can the user manipulate it? |
|---|---|---|---|
--color--alt-mix-amount |
Mix ratio used when generating *-alt surface colors. |
Direct percentage token. Default 4%. |
Yes. |
--color--background |
Main page/application background color. | Direct color token. Default #f5f5f5. |
Yes. |
--color--background-contrast |
Foreground color for content on background surfaces. | Direct color token. Default #2d2d2d. |
Yes. |
--color--background-contrast-muted |
Muted foreground for background surfaces. | Derived as color-mix(in srgb, var(--color--background-contrast) 67.5%, var(--color--background)). |
No. Change --color--background or --color--background-contrast instead. |
--color--background-border |
Border/emphasis companion for background surfaces. | Derived as color-mix(in srgb, var(--color--background-contrast) var(--color--border-mix-amount), var(--color--background)). |
No. Change --color--background, --color--background-contrast, or --color--border-mix-amount instead. |
--color--surface |
Default elevated/content surface color. | Direct color token. Default #ffffff. |
Yes. |
--color--surface-contrast |
Foreground color for content on surface backgrounds. | Direct color token. Default #2d2d2d. |
Yes. |
--color--surface-contrast-muted |
Muted foreground for surface backgrounds. | Derived as color-mix(in srgb, var(--color--surface-contrast) 67.5%, var(--color--surface)). |
No. Change --color--surface or --color--surface-contrast instead. |
--color--surface-border |
Border/emphasis companion for surface elements. | Derived as color-mix(in srgb, var(--color--surface-contrast) var(--color--border-mix-amount), var(--color--surface)). |
No. Change --color--surface, --color--surface-contrast, or --color--border-mix-amount instead. |
--color--surface-alt |
Softer alternate surface color. | Derived as color-mix(in srgb, var(--color--surface-contrast-muted) var(--color--alt-mix-amount), var(--color--surface)). |
No. Change --color--surface, --color--surface-contrast, or --color--alt-mix-amount instead. |
UI Colors
| Token | Purpose | How it is derived | Can the user manipulate it? |
|---|---|---|---|
--color--focus |
Focus ring and focus state color. | Direct color token. Default #4d90fe. |
Yes. |
--color--alpha |
Overlay color including opacity. | Direct RGBA token. Default rgba(0, 0, 0, 0.1). |
Yes. |
--color--alpha-contrast |
Foreground color on top of alpha overlays. | Direct color token. Default #ffffff. |
Yes. |
--color--alpha-border |
Border/emphasis companion for alpha overlays. | Derived as color-mix(in srgb, var(--color--alpha-contrast) var(--color--border-mix-amount), var(--color--alpha)). |
No. Change --color--alpha, --color--alpha-contrast, or --color--border-mix-amount instead. |
State Colors
| Token | Purpose | How it is derived | Can the user manipulate it? |
|---|---|---|---|
--color--success |
Success state background/accent color. | Direct color token. Default #4caf50. |
Yes. |
--color--success-contrast |
Foreground color for success surfaces. | Direct color token. Default #ffffff. |
Yes. |
--color--success-border |
Border/emphasis companion for success surfaces. | Derived as color-mix(in srgb, var(--color--success-contrast) var(--color--border-mix-amount), var(--color--success)). |
No. Change --color--success, --color--success-contrast, or --color--border-mix-amount instead. |
--color--warning |
Warning state background/accent color. | Direct color token. Default #ffb300. |
Yes. |
--color--warning-contrast |
Foreground color for warning surfaces. | Direct color token. Default #2d2d2d. |
Yes. |
--color--warning-border |
Border/emphasis companion for warning surfaces. | Derived as color-mix(in srgb, var(--color--warning-contrast) var(--color--border-mix-amount), var(--color--warning)). |
No. Change --color--warning, --color--warning-contrast, or --color--border-mix-amount instead. |
--color--danger |
Danger/error state background/accent color. | Direct color token. Default #e53935. |
Yes. |
--color--danger-contrast |
Foreground color for danger surfaces. | Direct color token. Default #ffffff. |
Yes. |
--color--danger-border |
Border/emphasis companion for danger surfaces. | Derived as color-mix(in srgb, var(--color--danger-contrast) var(--color--border-mix-amount), var(--color--danger)). |
No. Change --color--danger, --color--danger-contrast, or --color--border-mix-amount instead. |
--color--info |
Informational state background/accent color. | Direct color token. Default #039be5. |
Yes. |
--color--info-contrast |
Foreground color for info surfaces. | Direct color token. Default #ffffff. |
Yes. |
--color--info-border |
Border/emphasis companion for info surfaces. | Derived as color-mix(in srgb, var(--color--info-contrast) var(--color--border-mix-amount), var(--color--info)). |
No. Change --color--info, --color--info-contrast, or --color--border-mix-amount instead. |
Related Files
source/data/design-tokens.json(global token source)build-design-tokens.mjs(JSON -> generated Sass compiler)source/sass/setting/_design-tokens.scss(generated root CSS vars)source/sass/mixin/_tokens.scss(token API for components)source/components/*/component.json(component token whitelists)source/design-tokens-schema.json,source/component-schema.json, andsource/utility-schema.json(validation/contracts)
Testing
Contribution Rule-Set (Do and Don't)
The rules below are aligned with the validator tests in source/validators/Tests and should be followed for all component and style changes.
Do
- Do use design tokens as the source of truth in component styles.
- Do declare component token usage in
source/components/<component>/component.json. - Do namespace component CSS custom properties so they remain component-scoped.
- Do declare each
--inherit-*variable with@propertyandinherits: falsewhen used. - Do keep JavaScript tests adjacent to the file under test (
*.test.ts/*.test.js). - Do run validator and unit tests before opening a PR.
Don't
- Don't use Sass variables in component SCSS, except the allowed component name variable
$_in token helper calls. - Don't mix token/Sass variable patterns in utility files that should rely on CSS custom properties.
- Don't use un-namespaced CSS custom properties in component SCSS.
- Don't reference CSS variables that are not declared in design tokens / generated variable sources.
- Don't edit generated token output directly (for example
source/sass/setting/_design-tokens.scss), as it will be overwritten.
Test-Backed Rules (Source of Truth)
source/validators/Tests/NoSassVariablesTest.phpsource/validators/Tests/TokenMixingTest.phpsource/validators/Tests/CssVariablesNamespacedTest.phpsource/validators/Tests/CssVariablesReferencesDesignTokensTest.phpsource/validators/Tests/InheritVariablesDeclaredTest.php
Quick Verification Before PR
# PHP validator tests (SCSS/token contracts) ./vendor/bin/phpunit source/validators/Tests # JavaScript unit tests npm test
Jest is used as testing framework for JavaScript in the StyleGuide.
Test files should be added adjacent to the file that is the subject fo testing. Naming convention for test files is to use the same name as the file that is subject for testing and be appended with ".test.js" or "test.ts". The ".ts" file ending enables some IDE's, like VS Code, to add intellisense for Jest.
Example file accompanied by test file
source/js
├── gallery.js
├── gallery.test.ts
Test scripts
- Run tests:
npm test - Runs tests in file watch mode:
npm run test:dev
VS Code Devcontainer & Codespaces
Configuration for Codespaces is available and to get it up and running do the following after opening a Codespace:
- Run task
Setup. - Run task
Serve.
License
Distributed under the MIT License.