diff options
| author | Volpeon <git@volpeon.ink> | 2026-02-07 21:00:48 +0100 |
|---|---|---|
| committer | Volpeon <git@volpeon.ink> | 2026-02-07 21:00:48 +0100 |
| commit | 62d0e619de3b4b65812382dc7fb82d4e79158929 (patch) | |
| tree | 889013a484f15a07047bd0c09072a3d6e2006f57 | |
| parent | Update (diff) | |
| download | iro-design-62d0e619de3b4b65812382dc7fb82d4e79158929.tar.gz iro-design-62d0e619de3b4b65812382dc7fb82d4e79158929.tar.bz2 iro-design-62d0e619de3b4b65812382dc7fb82d4e79158929.zip | |
New lightbox
| -rw-r--r-- | package.json | 2 | ||||
| -rw-r--r-- | pnpm-lock.yaml | 116 | ||||
| -rw-r--r-- | src/objects/_lightbox.scss | 158 | ||||
| -rw-r--r-- | src/objects/_lightbox.vars.scss | 25 | ||||
| -rw-r--r-- | src/objects/_thumbnail.scss | 11 | ||||
| -rw-r--r-- | src/objects/_thumbnail.vars.scss | 2 | ||||
| -rw-r--r-- | src_demo/index.scss | 2 | ||||
| -rw-r--r-- | tpl/objects/lightbox.pug | 24 | ||||
| -rw-r--r-- | tpl/views/lightbox.pug | 6 |
9 files changed, 123 insertions, 223 deletions
diff --git a/package.json b/package.json index a9d4cec..fd7ef0c 100644 --- a/package.json +++ b/package.json | |||
| @@ -32,7 +32,7 @@ | |||
| 32 | "sass": "^1.97.3", | 32 | "sass": "^1.97.3", |
| 33 | "stylelint": "^17.0.0", | 33 | "stylelint": "^17.0.0", |
| 34 | "stylelint-config-recess-order": "^7.6.0", | 34 | "stylelint-config-recess-order": "^7.6.0", |
| 35 | "stylelint-config-sass-guidelines": "^12.1.0", | 35 | "stylelint-config-sass-guidelines": "^13.0.0", |
| 36 | "stylelint-order": "^7.0.1", | 36 | "stylelint-order": "^7.0.1", |
| 37 | "svg-sprite": "^2.0.4" | 37 | "svg-sprite": "^2.0.4" |
| 38 | } | 38 | } |
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index aeb150e..d6e4c99 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml | |||
| @@ -40,8 +40,8 @@ importers: | |||
| 40 | specifier: ^7.6.0 | 40 | specifier: ^7.6.0 |
| 41 | version: 7.6.0(stylelint-order@7.0.1(stylelint@17.1.1))(stylelint@17.1.1) | 41 | version: 7.6.0(stylelint-order@7.0.1(stylelint@17.1.1))(stylelint@17.1.1) |
| 42 | stylelint-config-sass-guidelines: | 42 | stylelint-config-sass-guidelines: |
| 43 | specifier: ^12.1.0 | 43 | specifier: ^13.0.0 |
| 44 | version: 12.1.0(postcss@8.5.6)(stylelint@17.1.1) | 44 | version: 13.0.0(postcss@8.5.6)(stylelint@17.1.1) |
| 45 | stylelint-order: | 45 | stylelint-order: |
| 46 | specifier: ^7.0.1 | 46 | specifier: ^7.0.1 |
| 47 | version: 7.0.1(stylelint@17.1.1) | 47 | version: 7.0.1(stylelint@17.1.1) |
| @@ -86,12 +86,6 @@ packages: | |||
| 86 | resolution: {integrity: sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==} | 86 | resolution: {integrity: sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==} |
| 87 | engines: {node: '>=0.1.90'} | 87 | engines: {node: '>=0.1.90'} |
| 88 | 88 | ||
| 89 | '@csstools/css-parser-algorithms@3.0.1': | ||
| 90 | resolution: {integrity: sha512-lSquqZCHxDfuTg/Sk2hiS0mcSFCEBuj49JfzPHJogDBT0mGCyY5A1AQzBWngitrp7i1/HAZpIgzF/VjhOEIJIg==} | ||
| 91 | engines: {node: '>=18'} | ||
| 92 | peerDependencies: | ||
| 93 | '@csstools/css-tokenizer': ^3.0.1 | ||
| 94 | |||
| 95 | '@csstools/css-parser-algorithms@4.0.0': | 89 | '@csstools/css-parser-algorithms@4.0.0': |
| 96 | resolution: {integrity: sha512-+B87qS7fIG3L5h3qwJ/IFbjoVoOe/bpOdh9hAjXbvx0o8ImEmUsGXN0inFOnk2ChCFgqkkGFQ+TpM5rbhkKe4w==} | 90 | resolution: {integrity: sha512-+B87qS7fIG3L5h3qwJ/IFbjoVoOe/bpOdh9hAjXbvx0o8ImEmUsGXN0inFOnk2ChCFgqkkGFQ+TpM5rbhkKe4w==} |
| 97 | engines: {node: '>=20.19.0'} | 91 | engines: {node: '>=20.19.0'} |
| @@ -101,21 +95,10 @@ packages: | |||
| 101 | '@csstools/css-syntax-patches-for-csstree@1.0.26': | 95 | '@csstools/css-syntax-patches-for-csstree@1.0.26': |
| 102 | resolution: {integrity: sha512-6boXK0KkzT5u5xOgF6TKB+CLq9SOpEGmkZw0g5n9/7yg85wab3UzSxB8TxhLJ31L4SGJ6BCFRw/iftTha1CJXA==} | 96 | resolution: {integrity: sha512-6boXK0KkzT5u5xOgF6TKB+CLq9SOpEGmkZw0g5n9/7yg85wab3UzSxB8TxhLJ31L4SGJ6BCFRw/iftTha1CJXA==} |
| 103 | 97 | ||
| 104 | '@csstools/css-tokenizer@3.0.1': | ||
| 105 | resolution: {integrity: sha512-UBqaiu7kU0lfvaP982/o3khfXccVlHPWp0/vwwiIgDF0GmqqqxoiXC/6FCjlS9u92f7CoEz6nXKQnrn1kIAkOw==} | ||
| 106 | engines: {node: '>=18'} | ||
| 107 | |||
| 108 | '@csstools/css-tokenizer@4.0.0': | 98 | '@csstools/css-tokenizer@4.0.0': |
| 109 | resolution: {integrity: sha512-QxULHAm7cNu72w97JUNCBFODFaXpbDg+dP8b/oWFAZ2MTRppA3U00Y2L1HqaS4J6yBqxwa/Y3nMBaxVKbB/NsA==} | 99 | resolution: {integrity: sha512-QxULHAm7cNu72w97JUNCBFODFaXpbDg+dP8b/oWFAZ2MTRppA3U00Y2L1HqaS4J6yBqxwa/Y3nMBaxVKbB/NsA==} |
| 110 | engines: {node: '>=20.19.0'} | 100 | engines: {node: '>=20.19.0'} |
| 111 | 101 | ||
| 112 | '@csstools/media-query-list-parser@3.0.1': | ||
| 113 | resolution: {integrity: sha512-HNo8gGD02kHmcbX6PvCoUuOQvn4szyB9ca63vZHKX5A81QytgDG4oxG4IaEfHTlEZSZ6MjPEMWIVU+zF2PZcgw==} | ||
| 114 | engines: {node: '>=18'} | ||
| 115 | peerDependencies: | ||
| 116 | '@csstools/css-parser-algorithms': ^3.0.1 | ||
| 117 | '@csstools/css-tokenizer': ^3.0.1 | ||
| 118 | |||
| 119 | '@csstools/media-query-list-parser@5.0.0': | 102 | '@csstools/media-query-list-parser@5.0.0': |
| 120 | resolution: {integrity: sha512-T9lXmZOfnam3eMERPsszjY5NK0jX8RmThmmm99FZ8b7z8yMaFZWKwLWGZuTwdO3ddRY5fy13GmmEYZXB4I98Eg==} | 103 | resolution: {integrity: sha512-T9lXmZOfnam3eMERPsszjY5NK0jX8RmThmmm99FZ8b7z8yMaFZWKwLWGZuTwdO3ddRY5fy13GmmEYZXB4I98Eg==} |
| 121 | engines: {node: '>=20.19.0'} | 104 | engines: {node: '>=20.19.0'} |
| @@ -331,11 +314,11 @@ packages: | |||
| 331 | resolution: {integrity: sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==} | 314 | resolution: {integrity: sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==} |
| 332 | engines: {node: '>=18'} | 315 | engines: {node: '>=18'} |
| 333 | 316 | ||
| 334 | '@stylistic/stylelint-plugin@3.1.1': | 317 | '@stylistic/stylelint-plugin@5.0.1': |
| 335 | resolution: {integrity: sha512-XagAHHIa528EvyGybv8EEYGK5zrVW74cHpsjhtovVATbhDRuJYfE+X4HCaAieW9lCkwbX6L+X0I4CiUG3w/hFw==} | 318 | resolution: {integrity: sha512-NaVwCNVZ2LyPA3TnUwvjO9c6P6VUjgRB8UP8SOW+cAOJBVqPPuOIDawsvvtql/LhkuR3JuTdGvr/RM3dUl8l2Q==} |
| 336 | engines: {node: ^18.12 || >=20.9} | 319 | engines: {node: '>=20.19.0'} |
| 337 | peerDependencies: | 320 | peerDependencies: |
| 338 | stylelint: ^16.8.0 | 321 | stylelint: ^17.0.0 |
| 339 | 322 | ||
| 340 | '@trysound/sax@0.2.0': | 323 | '@trysound/sax@0.2.0': |
| 341 | resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==} | 324 | resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==} |
| @@ -584,10 +567,6 @@ packages: | |||
| 584 | resolution: {integrity: sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==} | 567 | resolution: {integrity: sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==} |
| 585 | engines: {node: '>=8.0.0'} | 568 | engines: {node: '>=8.0.0'} |
| 586 | 569 | ||
| 587 | css-tree@2.3.1: | ||
| 588 | resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==} | ||
| 589 | engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} | ||
| 590 | |||
| 591 | css-tree@3.1.0: | 570 | css-tree@3.1.0: |
| 592 | resolution: {integrity: sha512-0eW44TGN5SQXU1mWSkKwFstI/22X2bG1nYzZTYMAWjylYURhse752YgbE4Cx46AC+bAvI+/dYTPRk1LqSUnu6w==} | 571 | resolution: {integrity: sha512-0eW44TGN5SQXU1mWSkKwFstI/22X2bG1nYzZTYMAWjylYURhse752YgbE4Cx46AC+bAvI+/dYTPRk1LqSUnu6w==} |
| 593 | engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} | 572 | engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} |
| @@ -952,9 +931,6 @@ packages: | |||
| 952 | resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} | 931 | resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} |
| 953 | engines: {node: '>=0.10.0'} | 932 | engines: {node: '>=0.10.0'} |
| 954 | 933 | ||
| 955 | known-css-properties@0.34.0: | ||
| 956 | resolution: {integrity: sha512-tBECoUqNFbyAY4RrbqsBQqDFpGXAEbdD5QKr8kACx3+rnArmuuR22nKQWKazvp07N9yjTyDZaw/20UIH8tL9DQ==} | ||
| 957 | |||
| 958 | known-css-properties@0.37.0: | 934 | known-css-properties@0.37.0: |
| 959 | resolution: {integrity: sha512-JCDrsP4Z1Sb9JwG0aJ8Eo2r7k4Ou5MwmThS/6lcIe1ICyb7UBJKGRIUUdqc2ASdE/42lgz6zFUnzAIhtXnBVrQ==} | 935 | resolution: {integrity: sha512-JCDrsP4Z1Sb9JwG0aJ8Eo2r7k4Ou5MwmThS/6lcIe1ICyb7UBJKGRIUUdqc2ASdE/42lgz6zFUnzAIhtXnBVrQ==} |
| 960 | 936 | ||
| @@ -994,12 +970,12 @@ packages: | |||
| 994 | mdn-data@2.0.14: | 970 | mdn-data@2.0.14: |
| 995 | resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==} | 971 | resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==} |
| 996 | 972 | ||
| 997 | mdn-data@2.0.30: | ||
| 998 | resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} | ||
| 999 | |||
| 1000 | mdn-data@2.12.2: | 973 | mdn-data@2.12.2: |
| 1001 | resolution: {integrity: sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA==} | 974 | resolution: {integrity: sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA==} |
| 1002 | 975 | ||
| 976 | mdn-data@2.27.0: | ||
| 977 | resolution: {integrity: sha512-/pUmP9UebM48q5BTqZd0yPnDjyRGhITbKh8cwa6/ZwjuDu8xq+VzmugLF7QNxpdaqqNH3J5nnv3yc8oARv096A==} | ||
| 978 | |||
| 1003 | meow@14.0.0: | 979 | meow@14.0.0: |
| 1004 | resolution: {integrity: sha512-JhC3R1f6dbspVtmF3vKjAWz1EVIvwFrGGPLSdU6rK79xBwHWTuHoLnRX/t1/zHS1Ch1Y2UtIrih7DAHuH9JFJA==} | 980 | resolution: {integrity: sha512-JhC3R1f6dbspVtmF3vKjAWz1EVIvwFrGGPLSdU6rK79xBwHWTuHoLnRX/t1/zHS1Ch1Y2UtIrih7DAHuH9JFJA==} |
| 1005 | engines: {node: '>=20'} | 981 | engines: {node: '>=20'} |
| @@ -1106,10 +1082,6 @@ packages: | |||
| 1106 | peerDependencies: | 1082 | peerDependencies: |
| 1107 | postcss: ^8.4.29 | 1083 | postcss: ^8.4.29 |
| 1108 | 1084 | ||
| 1109 | postcss-selector-parser@6.1.2: | ||
| 1110 | resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} | ||
| 1111 | engines: {node: '>=4'} | ||
| 1112 | |||
| 1113 | postcss-selector-parser@7.1.1: | 1085 | postcss-selector-parser@7.1.1: |
| 1114 | resolution: {integrity: sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==} | 1086 | resolution: {integrity: sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==} |
| 1115 | engines: {node: '>=4'} | 1087 | engines: {node: '>=4'} |
| @@ -1374,12 +1346,12 @@ packages: | |||
| 1374 | stylelint: ^16.18.0 || ^17.0.0 | 1346 | stylelint: ^16.18.0 || ^17.0.0 |
| 1375 | stylelint-order: ^7.0.0 | 1347 | stylelint-order: ^7.0.0 |
| 1376 | 1348 | ||
| 1377 | stylelint-config-sass-guidelines@12.1.0: | 1349 | stylelint-config-sass-guidelines@13.0.0: |
| 1378 | resolution: {integrity: sha512-NTxEtVT6uNSqRvq+A3ScyKhjUrY/Z845TnpWEwnMgIPZ/+/Waa4+51r6OPuQRMu4XZS3D8DK1UaT4TWFBvuuAw==} | 1350 | resolution: {integrity: sha512-YJT0X8h0OqyEo7ys3EycV5CGWt2rrkEYE8sHSN6sFnrxbXvHiy4KJFHDOWfyb3eWR6wtYpM+yIyvR2Plc8+pCg==} |
| 1379 | engines: {node: '>=18.12.0'} | 1351 | engines: {node: '>=20.19.0'} |
| 1380 | peerDependencies: | 1352 | peerDependencies: |
| 1381 | postcss: ^8.4.21 | 1353 | postcss: ^8.4.21 |
| 1382 | stylelint: ^16.1.0 | 1354 | stylelint: ^17.1.0 |
| 1383 | 1355 | ||
| 1384 | stylelint-order@7.0.1: | 1356 | stylelint-order@7.0.1: |
| 1385 | resolution: {integrity: sha512-GWPei1zBVDDjxM+/BmcSCiOcHNd8rSqW6FUZtqQGlTRpD0Z5nSzspzWD8rtKif5KPdzUG68DApKEV/y/I9VbTw==} | 1357 | resolution: {integrity: sha512-GWPei1zBVDDjxM+/BmcSCiOcHNd8rSqW6FUZtqQGlTRpD0Z5nSzspzWD8rtKif5KPdzUG68DApKEV/y/I9VbTw==} |
| @@ -1387,11 +1359,11 @@ packages: | |||
| 1387 | peerDependencies: | 1359 | peerDependencies: |
| 1388 | stylelint: ^16.18.0 || ^17.0.0 | 1360 | stylelint: ^16.18.0 || ^17.0.0 |
| 1389 | 1361 | ||
| 1390 | stylelint-scss@6.7.0: | 1362 | stylelint-scss@7.0.0: |
| 1391 | resolution: {integrity: sha512-RFIa2A+pVWS5wjNT+whtK7wsbZEWazyqesCuSaPbPlZ8lh2TujwVJSnCYJijg6ChZzwI8pZPRZS1L6A9aCbXDg==} | 1363 | resolution: {integrity: sha512-H88kCC+6Vtzj76NsC8rv6x/LW8slBzIbyeSjsKVlS+4qaEJoDrcJR4L+8JdrR2ORdTscrBzYWiiT2jq6leYR1Q==} |
| 1392 | engines: {node: '>=18.12.0'} | 1364 | engines: {node: '>=20.19.0'} |
| 1393 | peerDependencies: | 1365 | peerDependencies: |
| 1394 | stylelint: ^16.0.2 | 1366 | stylelint: ^16.8.2 || ^17.0.0 |
| 1395 | 1367 | ||
| 1396 | stylelint@17.1.1: | 1368 | stylelint@17.1.1: |
| 1397 | resolution: {integrity: sha512-SBHVcLEcRF1M9OkD3oT0hT2PayDNLw2hd+aovmzfNQ2ys4Xd3oS9ZNizILWqhQvW802AqKN/vUTMwJqQYMBlWw==} | 1369 | resolution: {integrity: sha512-SBHVcLEcRF1M9OkD3oT0hT2PayDNLw2hd+aovmzfNQ2ys4Xd3oS9ZNizILWqhQvW802AqKN/vUTMwJqQYMBlWw==} |
| @@ -1589,25 +1561,14 @@ snapshots: | |||
| 1589 | 1561 | ||
| 1590 | '@colors/colors@1.6.0': {} | 1562 | '@colors/colors@1.6.0': {} |
| 1591 | 1563 | ||
| 1592 | '@csstools/css-parser-algorithms@3.0.1(@csstools/css-tokenizer@3.0.1)': | ||
| 1593 | dependencies: | ||
| 1594 | '@csstools/css-tokenizer': 3.0.1 | ||
| 1595 | |||
| 1596 | '@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0)': | 1564 | '@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0)': |
| 1597 | dependencies: | 1565 | dependencies: |
| 1598 | '@csstools/css-tokenizer': 4.0.0 | 1566 | '@csstools/css-tokenizer': 4.0.0 |
| 1599 | 1567 | ||
| 1600 | '@csstools/css-syntax-patches-for-csstree@1.0.26': {} | 1568 | '@csstools/css-syntax-patches-for-csstree@1.0.26': {} |
| 1601 | 1569 | ||
| 1602 | '@csstools/css-tokenizer@3.0.1': {} | ||
| 1603 | |||
| 1604 | '@csstools/css-tokenizer@4.0.0': {} | 1570 | '@csstools/css-tokenizer@4.0.0': {} |
| 1605 | 1571 | ||
| 1606 | '@csstools/media-query-list-parser@3.0.1(@csstools/css-parser-algorithms@3.0.1(@csstools/css-tokenizer@3.0.1))(@csstools/css-tokenizer@3.0.1)': | ||
| 1607 | dependencies: | ||
| 1608 | '@csstools/css-parser-algorithms': 3.0.1(@csstools/css-tokenizer@3.0.1) | ||
| 1609 | '@csstools/css-tokenizer': 3.0.1 | ||
| 1610 | |||
| 1611 | '@csstools/media-query-list-parser@5.0.0(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0)': | 1572 | '@csstools/media-query-list-parser@5.0.0(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0)': |
| 1612 | dependencies: | 1573 | dependencies: |
| 1613 | '@csstools/css-parser-algorithms': 4.0.0(@csstools/css-tokenizer@4.0.0) | 1574 | '@csstools/css-parser-algorithms': 4.0.0(@csstools/css-tokenizer@4.0.0) |
| @@ -1761,13 +1722,13 @@ snapshots: | |||
| 1761 | 1722 | ||
| 1762 | '@sindresorhus/merge-streams@4.0.0': {} | 1723 | '@sindresorhus/merge-streams@4.0.0': {} |
| 1763 | 1724 | ||
| 1764 | '@stylistic/stylelint-plugin@3.1.1(stylelint@17.1.1)': | 1725 | '@stylistic/stylelint-plugin@5.0.1(stylelint@17.1.1)': |
| 1765 | dependencies: | 1726 | dependencies: |
| 1766 | '@csstools/css-parser-algorithms': 3.0.1(@csstools/css-tokenizer@3.0.1) | 1727 | '@csstools/css-parser-algorithms': 4.0.0(@csstools/css-tokenizer@4.0.0) |
| 1767 | '@csstools/css-tokenizer': 3.0.1 | 1728 | '@csstools/css-tokenizer': 4.0.0 |
| 1768 | '@csstools/media-query-list-parser': 3.0.1(@csstools/css-parser-algorithms@3.0.1(@csstools/css-tokenizer@3.0.1))(@csstools/css-tokenizer@3.0.1) | 1729 | '@csstools/media-query-list-parser': 5.0.0(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0) |
| 1769 | is-plain-object: 5.0.0 | 1730 | postcss: 8.5.6 |
| 1770 | postcss-selector-parser: 6.1.2 | 1731 | postcss-selector-parser: 7.1.1 |
| 1771 | postcss-value-parser: 4.2.0 | 1732 | postcss-value-parser: 4.2.0 |
| 1772 | style-search: 0.1.0 | 1733 | style-search: 0.1.0 |
| 1773 | stylelint: 17.1.1 | 1734 | stylelint: 17.1.1 |
| @@ -2025,11 +1986,6 @@ snapshots: | |||
| 2025 | mdn-data: 2.0.14 | 1986 | mdn-data: 2.0.14 |
| 2026 | source-map: 0.6.1 | 1987 | source-map: 0.6.1 |
| 2027 | 1988 | ||
| 2028 | css-tree@2.3.1: | ||
| 2029 | dependencies: | ||
| 2030 | mdn-data: 2.0.30 | ||
| 2031 | source-map-js: 1.2.1 | ||
| 2032 | |||
| 2033 | css-tree@3.1.0: | 1989 | css-tree@3.1.0: |
| 2034 | dependencies: | 1990 | dependencies: |
| 2035 | mdn-data: 2.12.2 | 1991 | mdn-data: 2.12.2 |
| @@ -2347,8 +2303,6 @@ snapshots: | |||
| 2347 | 2303 | ||
| 2348 | kind-of@6.0.3: {} | 2304 | kind-of@6.0.3: {} |
| 2349 | 2305 | ||
| 2350 | known-css-properties@0.34.0: {} | ||
| 2351 | |||
| 2352 | known-css-properties@0.37.0: {} | 2306 | known-css-properties@0.37.0: {} |
| 2353 | 2307 | ||
| 2354 | kuler@2.0.0: {} | 2308 | kuler@2.0.0: {} |
| @@ -2380,10 +2334,10 @@ snapshots: | |||
| 2380 | 2334 | ||
| 2381 | mdn-data@2.0.14: {} | 2335 | mdn-data@2.0.14: {} |
| 2382 | 2336 | ||
| 2383 | mdn-data@2.0.30: {} | ||
| 2384 | |||
| 2385 | mdn-data@2.12.2: {} | 2337 | mdn-data@2.12.2: {} |
| 2386 | 2338 | ||
| 2339 | mdn-data@2.27.0: {} | ||
| 2340 | |||
| 2387 | meow@14.0.0: {} | 2341 | meow@14.0.0: {} |
| 2388 | 2342 | ||
| 2389 | merge2@1.4.1: {} | 2343 | merge2@1.4.1: {} |
| @@ -2477,11 +2431,6 @@ snapshots: | |||
| 2477 | dependencies: | 2431 | dependencies: |
| 2478 | postcss: 8.5.6 | 2432 | postcss: 8.5.6 |
| 2479 | 2433 | ||
| 2480 | postcss-selector-parser@6.1.2: | ||
| 2481 | dependencies: | ||
| 2482 | cssesc: 3.0.0 | ||
| 2483 | util-deprecate: 1.0.2 | ||
| 2484 | |||
| 2485 | postcss-selector-parser@7.1.1: | 2434 | postcss-selector-parser@7.1.1: |
| 2486 | dependencies: | 2435 | dependencies: |
| 2487 | cssesc: 3.0.0 | 2436 | cssesc: 3.0.0 |
| @@ -2801,13 +2750,13 @@ snapshots: | |||
| 2801 | stylelint: 17.1.1 | 2750 | stylelint: 17.1.1 |
| 2802 | stylelint-order: 7.0.1(stylelint@17.1.1) | 2751 | stylelint-order: 7.0.1(stylelint@17.1.1) |
| 2803 | 2752 | ||
| 2804 | stylelint-config-sass-guidelines@12.1.0(postcss@8.5.6)(stylelint@17.1.1): | 2753 | stylelint-config-sass-guidelines@13.0.0(postcss@8.5.6)(stylelint@17.1.1): |
| 2805 | dependencies: | 2754 | dependencies: |
| 2806 | '@stylistic/stylelint-plugin': 3.1.1(stylelint@17.1.1) | 2755 | '@stylistic/stylelint-plugin': 5.0.1(stylelint@17.1.1) |
| 2807 | postcss: 8.5.6 | 2756 | postcss: 8.5.6 |
| 2808 | postcss-scss: 4.0.9(postcss@8.5.6) | 2757 | postcss-scss: 4.0.9(postcss@8.5.6) |
| 2809 | stylelint: 17.1.1 | 2758 | stylelint: 17.1.1 |
| 2810 | stylelint-scss: 6.7.0(stylelint@17.1.1) | 2759 | stylelint-scss: 7.0.0(stylelint@17.1.1) |
| 2811 | 2760 | ||
| 2812 | stylelint-order@7.0.1(stylelint@17.1.1): | 2761 | stylelint-order@7.0.1(stylelint@17.1.1): |
| 2813 | dependencies: | 2762 | dependencies: |
| @@ -2815,14 +2764,15 @@ snapshots: | |||
| 2815 | postcss-sorting: 9.1.0(postcss@8.5.6) | 2764 | postcss-sorting: 9.1.0(postcss@8.5.6) |
| 2816 | stylelint: 17.1.1 | 2765 | stylelint: 17.1.1 |
| 2817 | 2766 | ||
| 2818 | stylelint-scss@6.7.0(stylelint@17.1.1): | 2767 | stylelint-scss@7.0.0(stylelint@17.1.1): |
| 2819 | dependencies: | 2768 | dependencies: |
| 2820 | css-tree: 2.3.1 | 2769 | css-tree: 3.1.0 |
| 2821 | is-plain-object: 5.0.0 | 2770 | is-plain-object: 5.0.0 |
| 2822 | known-css-properties: 0.34.0 | 2771 | known-css-properties: 0.37.0 |
| 2772 | mdn-data: 2.27.0 | ||
| 2823 | postcss-media-query-parser: 0.2.3 | 2773 | postcss-media-query-parser: 0.2.3 |
| 2824 | postcss-resolve-nested-selector: 0.1.6 | 2774 | postcss-resolve-nested-selector: 0.1.6 |
| 2825 | postcss-selector-parser: 6.1.2 | 2775 | postcss-selector-parser: 7.1.1 |
| 2826 | postcss-value-parser: 4.2.0 | 2776 | postcss-value-parser: 4.2.0 |
| 2827 | stylelint: 17.1.1 | 2777 | stylelint: 17.1.1 |
| 2828 | 2778 | ||
diff --git a/src/objects/_lightbox.scss b/src/objects/_lightbox.scss index b95148f..0d5e111 100644 --- a/src/objects/_lightbox.scss +++ b/src/objects/_lightbox.scss | |||
| @@ -8,127 +8,89 @@ | |||
| 8 | @forward 'lightbox.vars'; | 8 | @forward 'lightbox.vars'; |
| 9 | @use 'lightbox.vars' as vars; | 9 | @use 'lightbox.vars' as vars; |
| 10 | 10 | ||
| 11 | @use 'backdrop.vars' as backdrop; | ||
| 12 | @use 'thumbnail.vars' as thumbnail; | ||
| 13 | |||
| 11 | @mixin styles { | 14 | @mixin styles { |
| 12 | @include materialize-at-root(meta.module-variables('vars')); | 15 | @include materialize-at-root(meta.module-variables('vars')); |
| 13 | 16 | ||
| 14 | @include bem.object('lightbox') { | 17 | @include bem.object('lightbox') { |
| 15 | flex: 1 1 auto; | 18 | position: relative; |
| 16 | min-block-size: 0; | 19 | box-sizing: border-box; |
| 17 | 20 | display: flex; | |
| 18 | @include bem.elem('header') { | 21 | flex: 1 1 auto; |
| 19 | display: flex; | 22 | flex-direction: column; |
| 20 | grid-area: header; | 23 | align-items: center; |
| 21 | align-items: flex-start; | 24 | justify-content: center; |
| 22 | padding-block-start: props.get(vars.$pad); | 25 | inline-size: 100%; |
| 23 | padding-inline: props.get(vars.$pad); | 26 | max-inline-size: none; |
| 24 | } | 27 | block-size: 100%; |
| 28 | min-block-size: 0; | ||
| 29 | max-block-size: none; | ||
| 30 | margin: 0; | ||
| 31 | background-color: transparent; | ||
| 32 | border: 0; | ||
| 25 | 33 | ||
| 26 | @include bem.elem('img') { | 34 | &::backdrop { |
| 27 | box-sizing: border-box; | 35 | background-color: props.get(backdrop.$bg-color); |
| 28 | display: block; | 36 | backdrop-filter: blur(props.get(backdrop.$blur)); |
| 29 | grid-area: content; | ||
| 30 | place-self: center; | ||
| 31 | inline-size: auto; | ||
| 32 | max-inline-size: 100%; | ||
| 33 | block-size: auto; | ||
| 34 | max-block-size: props.get(vars.$image--max-height); | ||
| 35 | padding: props.get(vars.$pad); | ||
| 36 | margin-inline: auto; | ||
| 37 | border-radius: calc(props.get(vars.$pad) + props.get(vars.$image--border-radius)); | ||
| 38 | } | 37 | } |
| 39 | 38 | ||
| 40 | @include bem.elem('thumbnails') { | 39 | &[open] { |
| 41 | display: none; | 40 | display: flex; |
| 42 | grid-area: thumbnails; | ||
| 43 | gap: props.get(vars.$thumbnails--spacing); | ||
| 44 | padding: props.get(vars.$pad); | ||
| 45 | margin-block-start: calc(-1 * props.get(vars.$pad)); | ||
| 46 | overflow: auto; | ||
| 47 | } | 41 | } |
| 48 | 42 | ||
| 49 | @include bem.elem('close-btn') { | 43 | @include bem.elem('controls') { |
| 50 | display: none; | 44 | position: absolute; |
| 51 | flex: 0 0 auto; | 45 | inset-block-start: props.get(vars.$pad); |
| 52 | margin-block-start: calc(-.5 * props.get(vars.$pad)); | 46 | inset-inline-end: props.get(vars.$pad); |
| 53 | margin-inline: auto calc(-.5 * props.get(vars.$pad)); | 47 | z-index: 20; |
| 54 | font-size: props.get(vars.$close-button--font-size); | 48 | padding: props.get(vars.$controls--pad-y) props.get(vars.$controls--pad-x); |
| 49 | border-radius: 10em; | ||
| 55 | } | 50 | } |
| 56 | 51 | ||
| 57 | @include bem.elem('nav-btn') { | 52 | @include bem.elem('img') { |
| 58 | position: relative; | 53 | position: relative; |
| 59 | display: none; | 54 | z-index: 10; |
| 60 | align-self: center; | 55 | display: none; |
| 61 | overflow: visible; | 56 | flex: 1 1 auto; |
| 62 | font-size: props.get(vars.$nav-button--font-size); | 57 | inline-size: auto; |
| 63 | 58 | max-inline-size: 100%; | |
| 64 | &::before { | 59 | block-size: auto; |
| 65 | position: absolute; | 60 | max-block-size: 100%; |
| 66 | inset-block-start: 50%; | 61 | margin: auto; |
| 67 | display: block; | ||
| 68 | inline-size: props.get(vars.$nav-button--inline-size); | ||
| 69 | block-size: props.get(vars.$nav-button--block-size); | ||
| 70 | content: ''; | ||
| 71 | transform: translateY(-50%); | ||
| 72 | } | ||
| 73 | |||
| 74 | @include bem.modifier('prev') { | ||
| 75 | grid-area: prev; | ||
| 76 | margin-inline: calc(.5 * props.get(vars.$pad)) calc(-1 * props.get(vars.$pad)); | ||
| 77 | |||
| 78 | &::before { | ||
| 79 | inset-inline-start: 0; | ||
| 80 | } | ||
| 81 | } | ||
| 82 | |||
| 83 | @include bem.modifier('next') { | ||
| 84 | grid-area: next; | ||
| 85 | margin-inline: calc(-1 * props.get(vars.$pad)) calc(.5 * props.get(vars.$pad)); | ||
| 86 | 62 | ||
| 87 | &::before { | 63 | @include bem.multi('&:target', 'is' 'visible') { |
| 88 | inset-inline-end: 0; | 64 | display: block; |
| 89 | } | ||
| 90 | } | 65 | } |
| 91 | } | 66 | } |
| 92 | 67 | ||
| 93 | @include bem.modifier('interactive') { | 68 | @include bem.elem('thumbnails') { |
| 94 | display: grid; | 69 | display: flex; |
| 95 | grid-template-areas: | 70 | flex: 0 0 auto; |
| 96 | 'header header header' | 71 | gap: props.get(vars.$thumbnail--spacing); |
| 97 | 'prev content next' | 72 | justify-content: center; |
| 98 | 'thumbnails thumbnails thumbnails'; | 73 | padding: props.get(vars.$pad); |
| 99 | grid-template-rows: auto minmax(0, 1fr) auto auto; | 74 | overflow: auto; |
| 100 | grid-template-columns: auto minmax(0, 1fr) auto; | 75 | } |
| 101 | |||
| 102 | @include bem.modifier('fullscreen') { | ||
| 103 | block-size: props.get(vars.$fullscreen--height); | ||
| 104 | } | ||
| 105 | |||
| 106 | @include bem.elem('img') { | ||
| 107 | display: none; | ||
| 108 | max-block-size: 100%; | ||
| 109 | margin-inline: 0; | ||
| 110 | |||
| 111 | @include bem.multi('&:target', 'is' 'visible') { | ||
| 112 | display: block; | ||
| 113 | } | ||
| 114 | } | ||
| 115 | |||
| 116 | @include bem.elem('thumbnails') { | ||
| 117 | display: flex; | ||
| 118 | } | ||
| 119 | 76 | ||
| 120 | @include bem.elem('close-btn') { | 77 | @include bem.elem('thumbnail') { |
| 121 | display: block; | 78 | inline-size: props.get(vars.$thumbnail--width); |
| 122 | } | 79 | transition: inline-size .1s ease, margin-inline .1s ease; |
| 123 | 80 | ||
| 124 | @include bem.elem('nav-btn') { | 81 | @include bem.is('selected') { |
| 125 | display: block; | 82 | inline-size: props.get(vars.$thumbnail--active--width); |
| 83 | margin-inline: props.get(vars.$thumbnail--active--spacing); | ||
| 126 | } | 84 | } |
| 127 | } | 85 | } |
| 128 | 86 | ||
| 129 | @each $theme in map.keys(props.get(vars.$static-themes)) { | 87 | @each $theme in map.keys(props.get(vars.$static-themes)) { |
| 130 | @include bem.modifier(string.slice($theme, 3)) { | 88 | @include bem.modifier(string.slice($theme, 3)) { |
| 131 | color: props.get(vars.$static-themes, $theme, --text); | 89 | color: props.get(vars.$static-themes, $theme, --text); |
| 90 | |||
| 91 | @include bem.elem('controls') { | ||
| 92 | background-color: props.get(vars.$static-themes, $theme, --controls-bg); | ||
| 93 | } | ||
| 132 | } | 94 | } |
| 133 | } | 95 | } |
| 134 | } | 96 | } |
diff --git a/src/objects/_lightbox.vars.scss b/src/objects/_lightbox.vars.scss index 6d22aa8..9f200b0 100644 --- a/src/objects/_lightbox.vars.scss +++ b/src/objects/_lightbox.vars.scss | |||
| @@ -4,30 +4,27 @@ | |||
| 4 | @use '../core.vars' as core; | 4 | @use '../core.vars' as core; |
| 5 | 5 | ||
| 6 | $pad: props.def(--o-lightbox--pad, props.get(core.$size--150)) !default; | 6 | $pad: props.def(--o-lightbox--pad, props.get(core.$size--150)) !default; |
| 7 | $fullscreen--height: props.def(--o-lightbox--fullscreen--height, 100vh) !default; | ||
| 8 | 7 | ||
| 9 | $image--max-height: props.def(--o-lightbox--image--max-height, calc(100vh - props.get(core.$size--600))) !default; | 8 | $controls--pad-x: props.def(--o-lightbox--controls--pad-x, props.get(core.$size--150)) !default; |
| 10 | $image--border-radius: props.def(--o-lightbox--image--border-radius, props.get(core.$rounding)) !default; | 9 | $controls--pad-y: props.def(--o-lightbox--controls--pad-y, props.get(core.$size--50)) !default; |
| 11 | 10 | ||
| 12 | $close-button--font-size: props.def(--o-lightbox--close-button--font-size, props.get(core.$font-size--200)) !default; | 11 | $thumbnail--width: props.def(--o-lightbox--thumbnail--width, props.get(core.$size--600)) !default; |
| 13 | 12 | $thumbnail--spacing: props.def(--o-lightbox--thumbnail--spacing, props.get(core.$size--100)) !default; | |
| 14 | $nav-button--inline-size: props.def(--o-lightbox--nav-button--inline-size, props.get(core.$size--2000)) !default; | 13 | $thumbnail--active--width: props.def(--o-lightbox--thumbnail--active--width, props.get(core.$size--1000)) !default; |
| 15 | $nav-button--block-size: props.def(--o-lightbox--nav-button--block-size, props.get(core.$size--3800)) !default; | 14 | $thumbnail--active--spacing: props.def(--o-lightbox--thumbnail--active--spacing, props.get(core.$size--250)) !default; |
| 16 | $nav-button--font-size: props.def(--o-lightbox--nav-button--font-size, props.get(core.$font-size--200)) !default; | ||
| 17 | |||
| 18 | $nav-button--inline-size--md: props.def(--o-lightbox--nav-button--inline-size, props.get(core.$size--2500), 'md') !default; | ||
| 19 | $nav-button--block-size--md: props.def(--o-lightbox--nav-button--block-size, props.get(core.$size--2500), 'md') !default; | ||
| 20 | |||
| 21 | $thumbnails--spacing: props.def(--o-lightbox--thumbnails--spacing, props.get(core.$size--100)) !default; | ||
| 22 | 15 | ||
| 23 | $static-themes: props.def(--o-lightbox, (), 'color'); | 16 | $static-themes: props.def(--o-lightbox, (), 'color'); |
| 24 | 17 | ||
| 18 | $thumbnail--width--md: props.def(--o-lightbox--thumbnail--width, props.get(core.$size--400), 'md') !default; | ||
| 19 | $thumbnail--active--width--md: props.def(--o-lightbox--thumbnail--active--width, props.get(core.$size--600), 'md') !default; | ||
| 20 | |||
| 25 | @each $theme in map.keys(props.get(core.$transparent-colors)) { | 21 | @each $theme in map.keys(props.get(core.$transparent-colors)) { |
| 26 | $lightbox-theme: --static-#{string.slice($theme, 3)}; | 22 | $lightbox-theme: --static-#{string.slice($theme, 3)}; |
| 27 | 23 | ||
| 28 | $static-themes: props.merge($static-themes, ( | 24 | $static-themes: props.merge($static-themes, ( |
| 29 | $lightbox-theme: ( | 25 | $lightbox-theme: ( |
| 30 | --text: props.get(core.$transparent-colors, $theme, --800), | 26 | --text: props.get(core.$transparent-colors, $theme, --text), |
| 27 | --controls-bg: props.get(core.$transparent-colors, $theme, --700), | ||
| 31 | ) | 28 | ) |
| 32 | )); | 29 | )); |
| 33 | } | 30 | } |
diff --git a/src/objects/_thumbnail.scss b/src/objects/_thumbnail.scss index 60a98af..2ccb50b 100644 --- a/src/objects/_thumbnail.scss +++ b/src/objects/_thumbnail.scss | |||
| @@ -21,7 +21,6 @@ | |||
| 21 | outline: props.get(vars.$border-color) solid props.get(vars.$border-width); | 21 | outline: props.get(vars.$border-color) solid props.get(vars.$border-width); |
| 22 | outline-offset: calc(-1 * props.get(vars.$border-width)); | 22 | outline-offset: calc(-1 * props.get(vars.$border-width)); |
| 23 | border-radius: props.get(vars.$rounding); | 23 | border-radius: props.get(vars.$rounding); |
| 24 | opacity: .75; | ||
| 25 | 24 | ||
| 26 | &:hover, | 25 | &:hover, |
| 27 | &:active, | 26 | &:active, |
| @@ -30,16 +29,6 @@ | |||
| 30 | opacity: 1; | 29 | opacity: 1; |
| 31 | } | 30 | } |
| 32 | 31 | ||
| 33 | @include bem.is('selected') { | ||
| 34 | $focus-border-offset: calc(-1 * props.get(vars.$selected--border-width)); | ||
| 35 | |||
| 36 | margin: $focus-border-offset; | ||
| 37 | outline: none; | ||
| 38 | border: props.get(vars.$selected--border-width) solid props.get(vars.$selected--border-color); | ||
| 39 | border-radius: calc(props.get(vars.$rounding) - $focus-border-offset); | ||
| 40 | opacity: 1; | ||
| 41 | } | ||
| 42 | |||
| 43 | @include bem.elem('image') { | 32 | @include bem.elem('image') { |
| 44 | position: absolute; | 33 | position: absolute; |
| 45 | inset-block-start: 0; | 34 | inset-block-start: 0; |
diff --git a/src/objects/_thumbnail.vars.scss b/src/objects/_thumbnail.vars.scss index e49e52e..d2a38c0 100644 --- a/src/objects/_thumbnail.vars.scss +++ b/src/objects/_thumbnail.vars.scss | |||
| @@ -3,7 +3,7 @@ | |||
| 3 | @use 'iro-sass/src/props'; | 3 | @use 'iro-sass/src/props'; |
| 4 | @use '../core.vars' as core; | 4 | @use '../core.vars' as core; |
| 5 | 5 | ||
| 6 | $size: props.def(--o-thumbnail--size, props.get(core.$size--700)) !default; | 6 | $size: props.def(--o-thumbnail--size, props.get(core.$size--900)) !default; |
| 7 | $rounding: props.def(--o-thumbnail--rounding, props.get(core.$rounding--sm)) !default; | 7 | $rounding: props.def(--o-thumbnail--rounding, props.get(core.$rounding--sm)) !default; |
| 8 | $spacing: props.def(--o-thumbnail--spacing, props.get(core.$size--100)) !default; | 8 | $spacing: props.def(--o-thumbnail--spacing, props.get(core.$size--100)) !default; |
| 9 | $border-width: props.def(--o-thumbnail--border-width, props.get(core.$border-width--thin)) !default; | 9 | $border-width: props.def(--o-thumbnail--border-width, props.get(core.$border-width--thin)) !default; |
diff --git a/src_demo/index.scss b/src_demo/index.scss index 53b01af..257318e 100644 --- a/src_demo/index.scss +++ b/src_demo/index.scss | |||
| @@ -35,6 +35,7 @@ | |||
| 35 | @include iro.o-figure--styles; | 35 | @include iro.o-figure--styles; |
| 36 | @include iro.o-field-label--styles; | 36 | @include iro.o-field-label--styles; |
| 37 | @include iro.o-heading--styles; | 37 | @include iro.o-heading--styles; |
| 38 | @include iro.o-thumbnail--styles; | ||
| 38 | @include iro.o-lightbox--styles; | 39 | @include iro.o-lightbox--styles; |
| 39 | @include iro.o-menu--styles; | 40 | @include iro.o-menu--styles; |
| 40 | @include iro.o-navbar--styles; | 41 | @include iro.o-navbar--styles; |
| @@ -47,7 +48,6 @@ | |||
| 47 | @include iro.o-table--styles; | 48 | @include iro.o-table--styles; |
| 48 | @include iro.o-tabbar--styles; | 49 | @include iro.o-tabbar--styles; |
| 49 | @include iro.o-text-field--styles; | 50 | @include iro.o-text-field--styles; |
| 50 | @include iro.o-thumbnail--styles; | ||
| 51 | 51 | ||
| 52 | @include iro.utils--styles; | 52 | @include iro.utils--styles; |
| 53 | 53 | ||
diff --git a/tpl/objects/lightbox.pug b/tpl/objects/lightbox.pug index 2d520b5..0fddad1 100644 --- a/tpl/objects/lightbox.pug +++ b/tpl/objects/lightbox.pug | |||
| @@ -11,26 +11,28 @@ mixin lightbox(images) | |||
| 11 | } | 11 | } |
| 12 | let thumbnailClasses = { | 12 | let thumbnailClasses = { |
| 13 | 'o-thumbnail': true, | 13 | 'o-thumbnail': true, |
| 14 | 'o-lightbox__thumbnail': true, | ||
| 14 | } | 15 | } |
| 16 | let inverseTheme = { | ||
| 17 | "static-black": "static-white", | ||
| 18 | "static-white": "static-black", | ||
| 19 | }[attributes.theme] | ||
| 15 | 20 | ||
| 16 | if (attributes.theme) { | 21 | if (attributes.theme) { |
| 17 | classes[`o-lightbox--${attributes.theme}`] = true; | 22 | classes[`o-lightbox--${attributes.theme}`] = true; |
| 18 | linksClasses[`s-links--${attributes.theme}`] = true; | 23 | linksClasses[`s-links--${inverseTheme}`] = true; |
| 19 | thumbnailClasses[`o-thumbnail--${attributes.theme}`] = true; | 24 | thumbnailClasses[`o-thumbnail--${inverseTheme}`] = true; |
| 20 | } | 25 | } |
| 21 | 26 | ||
| 22 | div(class=classes) | 27 | div(class=classes) |
| 23 | header.o-lightbox__header | ||
| 24 | div(class=linksClasses) | ||
| 25 | block | ||
| 26 | +button(theme=attributes.theme pill=true quiet=true icon='x' class='o-lightbox__close-btn') | ||
| 27 | |||
| 28 | each img, i in images | 28 | each img, i in images |
| 29 | img(src=images[i] id=('image-' + i) class=`o-lightbox__img ${attributes.interactive && !i ? 'is-visible' : ''}`) | 29 | img(src=images[i] id=('image-' + i) class=`o-lightbox__img ${attributes.interactive && !i ? 'is-visible' : ''}`) |
| 30 | 30 | ||
| 31 | if images.length > 1 | 31 | .o-lightbox__controls |
| 32 | +button(theme=attributes.theme pill=true quiet=true icon='chevron-left' class='o-lightbox__nav-btn o-lightbox__nav-btn--prev') | 32 | if images.length > 1 |
| 33 | +button(theme=attributes.theme pill=true quiet=true icon='chevron-right' class='o-lightbox__nav-btn o-lightbox__nav-btn--next') | 33 | +button(theme=inverseTheme pill=true quiet=true icon='chevron-left' class='o-lightbox__nav-btn o-lightbox__nav-btn--prev') |
| 34 | +button(theme=inverseTheme pill=true quiet=true icon='chevron-right' class='o-lightbox__nav-btn o-lightbox__nav-btn--next') | ||
| 35 | +button(theme=inverseTheme pill=true quiet=true icon='x' class='o-lightbox__close-btn') | ||
| 34 | 36 | ||
| 35 | .o-lightbox__thumbnails | 37 | .o-lightbox__thumbnails |
| 36 | each img, i in images | 38 | each img, i in images |
| @@ -38,7 +40,7 @@ mixin lightbox(images) | |||
| 38 | let classes = { 'is-selected': i === 0 } | 40 | let classes = { 'is-selected': i === 0 } |
| 39 | Object.assign(classes, thumbnailClasses) | 41 | Object.assign(classes, thumbnailClasses) |
| 40 | 42 | ||
| 41 | a.o-thumbnail(class=classes href='#image-' + i) | 43 | a(class=classes href='#image-' + i) |
| 42 | img.o-thumbnail__image(src=img) | 44 | img.o-thumbnail__image(src=img) |
| 43 | button(class=thumbnailClasses) | 45 | button(class=thumbnailClasses) |
| 44 | +icon('volume-2')(class='o-thumbnail__icon') | 46 | +icon('volume-2')(class='o-thumbnail__icon') |
diff --git a/tpl/views/lightbox.pug b/tpl/views/lightbox.pug index 7e366c0..c4b9878 100644 --- a/tpl/views/lightbox.pug +++ b/tpl/views/lightbox.pug | |||
| @@ -14,7 +14,7 @@ mixin view-lightbox | |||
| 14 | 14 | ||
| 15 | .c-box | 15 | .c-box |
| 16 | +backdrop | 16 | +backdrop |
| 17 | +lightbox(['avatar.png', 'ava_feralbot.png', 'volpeon_spooky.png'])(theme='static-white') | 17 | +lightbox(['avatar.png', 'ava_feralbot.png', 'volpeon_spooky.png'])(theme='static-black') |
| 18 | = "Let's try multiple links! " | 18 | = "Let's try multiple links! " |
| 19 | a(href="https://mk.vulpes.one/files/3023f361-124a-4c80-bb69-9535e47c2925") | 19 | a(href="https://mk.vulpes.one/files/3023f361-124a-4c80-bb69-9535e47c2925") |
| 20 | = "https://mk.vulpes.one/files/3023f361-124a-4c80-bb69-9535e47c2925" | 20 | = "https://mk.vulpes.one/files/3023f361-124a-4c80-bb69-9535e47c2925" |
| @@ -27,7 +27,7 @@ mixin view-lightbox | |||
| 27 | 27 | ||
| 28 | .c-box | 28 | .c-box |
| 29 | +backdrop | 29 | +backdrop |
| 30 | +lightbox(['avatar.png'])(theme='static-white') | 30 | +lightbox(['avatar.png'])(theme='static-black') |
| 31 | = "Let's try multiple links! " | 31 | = "Let's try multiple links! " |
| 32 | a(href="https://mk.vulpes.one/files/3023f361-124a-4c80-bb69-9535e47c2925") | 32 | a(href="https://mk.vulpes.one/files/3023f361-124a-4c80-bb69-9535e47c2925") |
| 33 | = "https://mk.vulpes.one/files/3023f361-124a-4c80-bb69-9535e47c2925" | 33 | = "https://mk.vulpes.one/files/3023f361-124a-4c80-bb69-9535e47c2925" |
| @@ -39,7 +39,7 @@ mixin view-lightbox | |||
| 39 | = "https://mk.vulpes.one/files/081e0684-08dc-4a42-b810-b0ac63ec7d06" | 39 | = "https://mk.vulpes.one/files/081e0684-08dc-4a42-b810-b0ac63ec7d06" |
| 40 | 40 | ||
| 41 | +backdrop(maxHeight=true) | 41 | +backdrop(maxHeight=true) |
| 42 | +lightbox(['avatar.png', 'ava_feralbot.png', 'volpeon_spooky.png'])(theme='static-white' interactive=true) | 42 | +lightbox(['avatar.png', 'ava_feralbot.png', 'volpeon_spooky.png'])(theme='static-black' interactive=true) |
| 43 | = "Let's try multiple links! " | 43 | = "Let's try multiple links! " |
| 44 | a(href="https://mk.vulpes.one/files/3023f361-124a-4c80-bb69-9535e47c2925") | 44 | a(href="https://mk.vulpes.one/files/3023f361-124a-4c80-bb69-9535e47c2925") |
| 45 | = "https://mk.vulpes.one/files/3023f361-124a-4c80-bb69-9535e47c2925" | 45 | = "https://mk.vulpes.one/files/3023f361-124a-4c80-bb69-9535e47c2925" |
