diff options
| -rw-r--r-- | package.json | 2 | ||||
| -rw-r--r-- | pnpm-lock.yaml | 162 | ||||
| -rw-r--r-- | src/objects/_lightbox.scss | 165 | ||||
| -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, 162 insertions, 237 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 f940590..d6e4c99 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml | |||
| @@ -35,16 +35,16 @@ importers: | |||
| 35 | version: 1.97.3 | 35 | version: 1.97.3 |
| 36 | stylelint: | 36 | stylelint: |
| 37 | specifier: ^17.0.0 | 37 | specifier: ^17.0.0 |
| 38 | version: 17.0.0 | 38 | version: 17.1.1 |
| 39 | stylelint-config-recess-order: | 39 | stylelint-config-recess-order: |
| 40 | specifier: ^7.6.0 | 40 | specifier: ^7.6.0 |
| 41 | version: 7.6.0(stylelint-order@7.0.1(stylelint@17.0.0))(stylelint@17.0.0) | 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.0.0) | 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.0.0) | 47 | version: 7.0.1(stylelint@17.1.1) |
| 48 | svg-sprite: | 48 | svg-sprite: |
| 49 | specifier: ^2.0.4 | 49 | specifier: ^2.0.4 |
| 50 | version: 2.0.4 | 50 | version: 2.0.4 |
| @@ -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'} |
| @@ -188,36 +171,42 @@ packages: | |||
| 188 | engines: {node: '>= 10.0.0'} | 171 | engines: {node: '>= 10.0.0'} |
| 189 | cpu: [arm] | 172 | cpu: [arm] |
| 190 | os: [linux] | 173 | os: [linux] |
| 174 | libc: [glibc] | ||
| 191 | 175 | ||
| 192 | '@parcel/watcher-linux-arm-musl@2.5.6': | 176 | '@parcel/watcher-linux-arm-musl@2.5.6': |
| 193 | resolution: {integrity: sha512-Ve3gUCG57nuUUSyjBq/MAM0CzArtuIOxsBdQ+ftz6ho8n7s1i9E1Nmk/xmP323r2YL0SONs1EuwqBp2u1k5fxg==} | 177 | resolution: {integrity: sha512-Ve3gUCG57nuUUSyjBq/MAM0CzArtuIOxsBdQ+ftz6ho8n7s1i9E1Nmk/xmP323r2YL0SONs1EuwqBp2u1k5fxg==} |
| 194 | engines: {node: '>= 10.0.0'} | 178 | engines: {node: '>= 10.0.0'} |
| 195 | cpu: [arm] | 179 | cpu: [arm] |
| 196 | os: [linux] | 180 | os: [linux] |
| 181 | libc: [musl] | ||
| 197 | 182 | ||
| 198 | '@parcel/watcher-linux-arm64-glibc@2.5.6': | 183 | '@parcel/watcher-linux-arm64-glibc@2.5.6': |
| 199 | resolution: {integrity: sha512-f2g/DT3NhGPdBmMWYoxixqYr3v/UXcmLOYy16Bx0TM20Tchduwr4EaCbmxh1321TABqPGDpS8D/ggOTaljijOA==} | 184 | resolution: {integrity: sha512-f2g/DT3NhGPdBmMWYoxixqYr3v/UXcmLOYy16Bx0TM20Tchduwr4EaCbmxh1321TABqPGDpS8D/ggOTaljijOA==} |
| 200 | engines: {node: '>= 10.0.0'} | 185 | engines: {node: '>= 10.0.0'} |
| 201 | cpu: [arm64] | 186 | cpu: [arm64] |
| 202 | os: [linux] | 187 | os: [linux] |
| 188 | libc: [glibc] | ||
| 203 | 189 | ||
| 204 | '@parcel/watcher-linux-arm64-musl@2.5.6': | 190 | '@parcel/watcher-linux-arm64-musl@2.5.6': |
| 205 | resolution: {integrity: sha512-qb6naMDGlbCwdhLj6hgoVKJl2odL34z2sqkC7Z6kzir8b5W65WYDpLB6R06KabvZdgoHI/zxke4b3zR0wAbDTA==} | 191 | resolution: {integrity: sha512-qb6naMDGlbCwdhLj6hgoVKJl2odL34z2sqkC7Z6kzir8b5W65WYDpLB6R06KabvZdgoHI/zxke4b3zR0wAbDTA==} |
| 206 | engines: {node: '>= 10.0.0'} | 192 | engines: {node: '>= 10.0.0'} |
| 207 | cpu: [arm64] | 193 | cpu: [arm64] |
| 208 | os: [linux] | 194 | os: [linux] |
| 195 | libc: [musl] | ||
| 209 | 196 | ||
| 210 | '@parcel/watcher-linux-x64-glibc@2.5.6': | 197 | '@parcel/watcher-linux-x64-glibc@2.5.6': |
| 211 | resolution: {integrity: sha512-kbT5wvNQlx7NaGjzPFu8nVIW1rWqV780O7ZtkjuWaPUgpv2NMFpjYERVi0UYj1msZNyCzGlaCWEtzc+exjMGbQ==} | 198 | resolution: {integrity: sha512-kbT5wvNQlx7NaGjzPFu8nVIW1rWqV780O7ZtkjuWaPUgpv2NMFpjYERVi0UYj1msZNyCzGlaCWEtzc+exjMGbQ==} |
| 212 | engines: {node: '>= 10.0.0'} | 199 | engines: {node: '>= 10.0.0'} |
| 213 | cpu: [x64] | 200 | cpu: [x64] |
| 214 | os: [linux] | 201 | os: [linux] |
| 202 | libc: [glibc] | ||
| 215 | 203 | ||
| 216 | '@parcel/watcher-linux-x64-musl@2.5.6': | 204 | '@parcel/watcher-linux-x64-musl@2.5.6': |
| 217 | resolution: {integrity: sha512-1JRFeC+h7RdXwldHzTsmdtYR/Ku8SylLgTU/reMuqdVD7CtLwf0VR1FqeprZ0eHQkO0vqsbvFLXUmYm/uNKJBg==} | 205 | resolution: {integrity: sha512-1JRFeC+h7RdXwldHzTsmdtYR/Ku8SylLgTU/reMuqdVD7CtLwf0VR1FqeprZ0eHQkO0vqsbvFLXUmYm/uNKJBg==} |
| 218 | engines: {node: '>= 10.0.0'} | 206 | engines: {node: '>= 10.0.0'} |
| 219 | cpu: [x64] | 207 | cpu: [x64] |
| 220 | os: [linux] | 208 | os: [linux] |
| 209 | libc: [musl] | ||
| 221 | 210 | ||
| 222 | '@parcel/watcher-win32-arm64@2.5.6': | 211 | '@parcel/watcher-win32-arm64@2.5.6': |
| 223 | resolution: {integrity: sha512-3ukyebjc6eGlw9yRt678DxVF7rjXatWiHvTXqphZLvo7aC5NdEgFufVwjFfY51ijYEWpXbqF5jtrK275z52D4Q==} | 212 | resolution: {integrity: sha512-3ukyebjc6eGlw9yRt678DxVF7rjXatWiHvTXqphZLvo7aC5NdEgFufVwjFfY51ijYEWpXbqF5jtrK275z52D4Q==} |
| @@ -276,24 +265,28 @@ packages: | |||
| 276 | engines: {node: '>= 10'} | 265 | engines: {node: '>= 10'} |
| 277 | cpu: [arm64] | 266 | cpu: [arm64] |
| 278 | os: [linux] | 267 | os: [linux] |
| 268 | libc: [glibc] | ||
| 279 | 269 | ||
| 280 | '@resvg/resvg-js-linux-arm64-musl@2.6.2': | 270 | '@resvg/resvg-js-linux-arm64-musl@2.6.2': |
| 281 | resolution: {integrity: sha512-3h3dLPWNgSsD4lQBJPb4f+kvdOSJHa5PjTYVsWHxLUzH4IFTJUAnmuWpw4KqyQ3NA5QCyhw4TWgxk3jRkQxEKg==} | 271 | resolution: {integrity: sha512-3h3dLPWNgSsD4lQBJPb4f+kvdOSJHa5PjTYVsWHxLUzH4IFTJUAnmuWpw4KqyQ3NA5QCyhw4TWgxk3jRkQxEKg==} |
| 282 | engines: {node: '>= 10'} | 272 | engines: {node: '>= 10'} |
| 283 | cpu: [arm64] | 273 | cpu: [arm64] |
| 284 | os: [linux] | 274 | os: [linux] |
| 275 | libc: [musl] | ||
| 285 | 276 | ||
| 286 | '@resvg/resvg-js-linux-x64-gnu@2.6.2': | 277 | '@resvg/resvg-js-linux-x64-gnu@2.6.2': |
| 287 | resolution: {integrity: sha512-IVUe+ckIerA7xMZ50duAZzwf1U7khQe2E0QpUxu5MBJNao5RqC0zwV/Zm965vw6D3gGFUl7j4m+oJjubBVoftw==} | 278 | resolution: {integrity: sha512-IVUe+ckIerA7xMZ50duAZzwf1U7khQe2E0QpUxu5MBJNao5RqC0zwV/Zm965vw6D3gGFUl7j4m+oJjubBVoftw==} |
| 288 | engines: {node: '>= 10'} | 279 | engines: {node: '>= 10'} |
| 289 | cpu: [x64] | 280 | cpu: [x64] |
| 290 | os: [linux] | 281 | os: [linux] |
| 282 | libc: [glibc] | ||
| 291 | 283 | ||
| 292 | '@resvg/resvg-js-linux-x64-musl@2.6.2': | 284 | '@resvg/resvg-js-linux-x64-musl@2.6.2': |
| 293 | resolution: {integrity: sha512-UOf83vqTzoYQO9SZ0fPl2ZIFtNIz/Rr/y+7X8XRX1ZnBYsQ/tTb+cj9TE+KHOdmlTFBxhYzVkP2lRByCzqi4jQ==} | 285 | resolution: {integrity: sha512-UOf83vqTzoYQO9SZ0fPl2ZIFtNIz/Rr/y+7X8XRX1ZnBYsQ/tTb+cj9TE+KHOdmlTFBxhYzVkP2lRByCzqi4jQ==} |
| 294 | engines: {node: '>= 10'} | 286 | engines: {node: '>= 10'} |
| 295 | cpu: [x64] | 287 | cpu: [x64] |
| 296 | os: [linux] | 288 | os: [linux] |
| 289 | libc: [musl] | ||
| 297 | 290 | ||
| 298 | '@resvg/resvg-js-win32-arm64-msvc@2.6.2': | 291 | '@resvg/resvg-js-win32-arm64-msvc@2.6.2': |
| 299 | resolution: {integrity: sha512-7C/RSgCa+7vqZ7qAbItfiaAWhyRSoD4l4BQAbVDqRRsRgY+S+hgS3in0Rxr7IorKUpGE69X48q6/nOAuTJQxeQ==} | 292 | resolution: {integrity: sha512-7C/RSgCa+7vqZ7qAbItfiaAWhyRSoD4l4BQAbVDqRRsRgY+S+hgS3in0Rxr7IorKUpGE69X48q6/nOAuTJQxeQ==} |
| @@ -321,11 +314,11 @@ packages: | |||
| 321 | resolution: {integrity: sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==} | 314 | resolution: {integrity: sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==} |
| 322 | engines: {node: '>=18'} | 315 | engines: {node: '>=18'} |
| 323 | 316 | ||
| 324 | '@stylistic/stylelint-plugin@3.1.1': | 317 | '@stylistic/stylelint-plugin@5.0.1': |
| 325 | resolution: {integrity: sha512-XagAHHIa528EvyGybv8EEYGK5zrVW74cHpsjhtovVATbhDRuJYfE+X4HCaAieW9lCkwbX6L+X0I4CiUG3w/hFw==} | 318 | resolution: {integrity: sha512-NaVwCNVZ2LyPA3TnUwvjO9c6P6VUjgRB8UP8SOW+cAOJBVqPPuOIDawsvvtql/LhkuR3JuTdGvr/RM3dUl8l2Q==} |
| 326 | engines: {node: ^18.12 || >=20.9} | 319 | engines: {node: '>=20.19.0'} |
| 327 | peerDependencies: | 320 | peerDependencies: |
| 328 | stylelint: ^16.8.0 | 321 | stylelint: ^17.0.0 |
| 329 | 322 | ||
| 330 | '@trysound/sax@0.2.0': | 323 | '@trysound/sax@0.2.0': |
| 331 | resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==} | 324 | resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==} |
| @@ -574,10 +567,6 @@ packages: | |||
| 574 | resolution: {integrity: sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==} | 567 | resolution: {integrity: sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==} |
| 575 | engines: {node: '>=8.0.0'} | 568 | engines: {node: '>=8.0.0'} |
| 576 | 569 | ||
| 577 | css-tree@2.3.1: | ||
| 578 | resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==} | ||
| 579 | engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} | ||
| 580 | |||
| 581 | css-tree@3.1.0: | 570 | css-tree@3.1.0: |
| 582 | resolution: {integrity: sha512-0eW44TGN5SQXU1mWSkKwFstI/22X2bG1nYzZTYMAWjylYURhse752YgbE4Cx46AC+bAvI+/dYTPRk1LqSUnu6w==} | 571 | resolution: {integrity: sha512-0eW44TGN5SQXU1mWSkKwFstI/22X2bG1nYzZTYMAWjylYURhse752YgbE4Cx46AC+bAvI+/dYTPRk1LqSUnu6w==} |
| 583 | 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} |
| @@ -942,9 +931,6 @@ packages: | |||
| 942 | resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} | 931 | resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} |
| 943 | engines: {node: '>=0.10.0'} | 932 | engines: {node: '>=0.10.0'} |
| 944 | 933 | ||
| 945 | known-css-properties@0.34.0: | ||
| 946 | resolution: {integrity: sha512-tBECoUqNFbyAY4RrbqsBQqDFpGXAEbdD5QKr8kACx3+rnArmuuR22nKQWKazvp07N9yjTyDZaw/20UIH8tL9DQ==} | ||
| 947 | |||
| 948 | known-css-properties@0.37.0: | 934 | known-css-properties@0.37.0: |
| 949 | resolution: {integrity: sha512-JCDrsP4Z1Sb9JwG0aJ8Eo2r7k4Ou5MwmThS/6lcIe1ICyb7UBJKGRIUUdqc2ASdE/42lgz6zFUnzAIhtXnBVrQ==} | 935 | resolution: {integrity: sha512-JCDrsP4Z1Sb9JwG0aJ8Eo2r7k4Ou5MwmThS/6lcIe1ICyb7UBJKGRIUUdqc2ASdE/42lgz6zFUnzAIhtXnBVrQ==} |
| 950 | 936 | ||
| @@ -984,12 +970,12 @@ packages: | |||
| 984 | mdn-data@2.0.14: | 970 | mdn-data@2.0.14: |
| 985 | resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==} | 971 | resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==} |
| 986 | 972 | ||
| 987 | mdn-data@2.0.30: | ||
| 988 | resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} | ||
| 989 | |||
| 990 | mdn-data@2.12.2: | 973 | mdn-data@2.12.2: |
| 991 | resolution: {integrity: sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA==} | 974 | resolution: {integrity: sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA==} |
| 992 | 975 | ||
| 976 | mdn-data@2.27.0: | ||
| 977 | resolution: {integrity: sha512-/pUmP9UebM48q5BTqZd0yPnDjyRGhITbKh8cwa6/ZwjuDu8xq+VzmugLF7QNxpdaqqNH3J5nnv3yc8oARv096A==} | ||
| 978 | |||
| 993 | meow@14.0.0: | 979 | meow@14.0.0: |
| 994 | resolution: {integrity: sha512-JhC3R1f6dbspVtmF3vKjAWz1EVIvwFrGGPLSdU6rK79xBwHWTuHoLnRX/t1/zHS1Ch1Y2UtIrih7DAHuH9JFJA==} | 980 | resolution: {integrity: sha512-JhC3R1f6dbspVtmF3vKjAWz1EVIvwFrGGPLSdU6rK79xBwHWTuHoLnRX/t1/zHS1Ch1Y2UtIrih7DAHuH9JFJA==} |
| 995 | engines: {node: '>=20'} | 981 | engines: {node: '>=20'} |
| @@ -1096,10 +1082,6 @@ packages: | |||
| 1096 | peerDependencies: | 1082 | peerDependencies: |
| 1097 | postcss: ^8.4.29 | 1083 | postcss: ^8.4.29 |
| 1098 | 1084 | ||
| 1099 | postcss-selector-parser@6.1.2: | ||
| 1100 | resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} | ||
| 1101 | engines: {node: '>=4'} | ||
| 1102 | |||
| 1103 | postcss-selector-parser@7.1.1: | 1085 | postcss-selector-parser@7.1.1: |
| 1104 | resolution: {integrity: sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==} | 1086 | resolution: {integrity: sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==} |
| 1105 | engines: {node: '>=4'} | 1087 | engines: {node: '>=4'} |
| @@ -1333,8 +1315,8 @@ packages: | |||
| 1333 | resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} | 1315 | resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} |
| 1334 | engines: {node: '>=8'} | 1316 | engines: {node: '>=8'} |
| 1335 | 1317 | ||
| 1336 | string-width@8.1.0: | 1318 | string-width@8.1.1: |
| 1337 | resolution: {integrity: sha512-Kxl3KJGb/gxkaUMOjRsQ8IrXiGW75O4E3RPjFIINOVH8AMl2SQ/yWdTzWwF3FevIX9LcMAjJW+GRwAlAbTSXdg==} | 1319 | resolution: {integrity: sha512-KpqHIdDL9KwYk22wEOg/VIqYbrnLeSApsKT/bSj6Ez7pn3CftUiLAv2Lccpq1ALcpLV9UX1Ppn92npZWu2w/aw==} |
| 1338 | engines: {node: '>=20'} | 1320 | engines: {node: '>=20'} |
| 1339 | 1321 | ||
| 1340 | string_decoder@1.1.1: | 1322 | string_decoder@1.1.1: |
| @@ -1364,12 +1346,12 @@ packages: | |||
| 1364 | stylelint: ^16.18.0 || ^17.0.0 | 1346 | stylelint: ^16.18.0 || ^17.0.0 |
| 1365 | stylelint-order: ^7.0.0 | 1347 | stylelint-order: ^7.0.0 |
| 1366 | 1348 | ||
| 1367 | stylelint-config-sass-guidelines@12.1.0: | 1349 | stylelint-config-sass-guidelines@13.0.0: |
| 1368 | resolution: {integrity: sha512-NTxEtVT6uNSqRvq+A3ScyKhjUrY/Z845TnpWEwnMgIPZ/+/Waa4+51r6OPuQRMu4XZS3D8DK1UaT4TWFBvuuAw==} | 1350 | resolution: {integrity: sha512-YJT0X8h0OqyEo7ys3EycV5CGWt2rrkEYE8sHSN6sFnrxbXvHiy4KJFHDOWfyb3eWR6wtYpM+yIyvR2Plc8+pCg==} |
| 1369 | engines: {node: '>=18.12.0'} | 1351 | engines: {node: '>=20.19.0'} |
| 1370 | peerDependencies: | 1352 | peerDependencies: |
| 1371 | postcss: ^8.4.21 | 1353 | postcss: ^8.4.21 |
| 1372 | stylelint: ^16.1.0 | 1354 | stylelint: ^17.1.0 |
| 1373 | 1355 | ||
| 1374 | stylelint-order@7.0.1: | 1356 | stylelint-order@7.0.1: |
| 1375 | resolution: {integrity: sha512-GWPei1zBVDDjxM+/BmcSCiOcHNd8rSqW6FUZtqQGlTRpD0Z5nSzspzWD8rtKif5KPdzUG68DApKEV/y/I9VbTw==} | 1357 | resolution: {integrity: sha512-GWPei1zBVDDjxM+/BmcSCiOcHNd8rSqW6FUZtqQGlTRpD0Z5nSzspzWD8rtKif5KPdzUG68DApKEV/y/I9VbTw==} |
| @@ -1377,14 +1359,14 @@ packages: | |||
| 1377 | peerDependencies: | 1359 | peerDependencies: |
| 1378 | stylelint: ^16.18.0 || ^17.0.0 | 1360 | stylelint: ^16.18.0 || ^17.0.0 |
| 1379 | 1361 | ||
| 1380 | stylelint-scss@6.7.0: | 1362 | stylelint-scss@7.0.0: |
| 1381 | resolution: {integrity: sha512-RFIa2A+pVWS5wjNT+whtK7wsbZEWazyqesCuSaPbPlZ8lh2TujwVJSnCYJijg6ChZzwI8pZPRZS1L6A9aCbXDg==} | 1363 | resolution: {integrity: sha512-H88kCC+6Vtzj76NsC8rv6x/LW8slBzIbyeSjsKVlS+4qaEJoDrcJR4L+8JdrR2ORdTscrBzYWiiT2jq6leYR1Q==} |
| 1382 | engines: {node: '>=18.12.0'} | 1364 | engines: {node: '>=20.19.0'} |
| 1383 | peerDependencies: | 1365 | peerDependencies: |
| 1384 | stylelint: ^16.0.2 | 1366 | stylelint: ^16.8.2 || ^17.0.0 |
| 1385 | 1367 | ||
| 1386 | stylelint@17.0.0: | 1368 | stylelint@17.1.1: |
| 1387 | resolution: {integrity: sha512-saMZ2mqdQre4AfouxcbTdpVglDRcROb4MIucKHvgsDb/0IX7ODhcaz+EOIyfxAsm8Zjl/7j4hJj6MgIYYM8Xwg==} | 1369 | resolution: {integrity: sha512-SBHVcLEcRF1M9OkD3oT0hT2PayDNLw2hd+aovmzfNQ2ys4Xd3oS9ZNizILWqhQvW802AqKN/vUTMwJqQYMBlWw==} |
| 1388 | engines: {node: '>=20.19.0'} | 1370 | engines: {node: '>=20.19.0'} |
| 1389 | hasBin: true | 1371 | hasBin: true |
| 1390 | 1372 | ||
| @@ -1579,25 +1561,14 @@ snapshots: | |||
| 1579 | 1561 | ||
| 1580 | '@colors/colors@1.6.0': {} | 1562 | '@colors/colors@1.6.0': {} |
| 1581 | 1563 | ||
| 1582 | '@csstools/css-parser-algorithms@3.0.1(@csstools/css-tokenizer@3.0.1)': | ||
| 1583 | dependencies: | ||
| 1584 | '@csstools/css-tokenizer': 3.0.1 | ||
| 1585 | |||
| 1586 | '@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)': |
| 1587 | dependencies: | 1565 | dependencies: |
| 1588 | '@csstools/css-tokenizer': 4.0.0 | 1566 | '@csstools/css-tokenizer': 4.0.0 |
| 1589 | 1567 | ||
| 1590 | '@csstools/css-syntax-patches-for-csstree@1.0.26': {} | 1568 | '@csstools/css-syntax-patches-for-csstree@1.0.26': {} |
| 1591 | 1569 | ||
| 1592 | '@csstools/css-tokenizer@3.0.1': {} | ||
| 1593 | |||
| 1594 | '@csstools/css-tokenizer@4.0.0': {} | 1570 | '@csstools/css-tokenizer@4.0.0': {} |
| 1595 | 1571 | ||
| 1596 | '@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)': | ||
| 1597 | dependencies: | ||
| 1598 | '@csstools/css-parser-algorithms': 3.0.1(@csstools/css-tokenizer@3.0.1) | ||
| 1599 | '@csstools/css-tokenizer': 3.0.1 | ||
| 1600 | |||
| 1601 | '@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)': |
| 1602 | dependencies: | 1573 | dependencies: |
| 1603 | '@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) |
| @@ -1751,16 +1722,16 @@ snapshots: | |||
| 1751 | 1722 | ||
| 1752 | '@sindresorhus/merge-streams@4.0.0': {} | 1723 | '@sindresorhus/merge-streams@4.0.0': {} |
| 1753 | 1724 | ||
| 1754 | '@stylistic/stylelint-plugin@3.1.1(stylelint@17.0.0)': | 1725 | '@stylistic/stylelint-plugin@5.0.1(stylelint@17.1.1)': |
| 1755 | dependencies: | 1726 | dependencies: |
| 1756 | '@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) |
| 1757 | '@csstools/css-tokenizer': 3.0.1 | 1728 | '@csstools/css-tokenizer': 4.0.0 |
| 1758 | '@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) |
| 1759 | is-plain-object: 5.0.0 | 1730 | postcss: 8.5.6 |
| 1760 | postcss-selector-parser: 6.1.2 | 1731 | postcss-selector-parser: 7.1.1 |
| 1761 | postcss-value-parser: 4.2.0 | 1732 | postcss-value-parser: 4.2.0 |
| 1762 | style-search: 0.1.0 | 1733 | style-search: 0.1.0 |
| 1763 | stylelint: 17.0.0 | 1734 | stylelint: 17.1.1 |
| 1764 | 1735 | ||
| 1765 | '@trysound/sax@0.2.0': {} | 1736 | '@trysound/sax@0.2.0': {} |
| 1766 | 1737 | ||
| @@ -2015,11 +1986,6 @@ snapshots: | |||
| 2015 | mdn-data: 2.0.14 | 1986 | mdn-data: 2.0.14 |
| 2016 | source-map: 0.6.1 | 1987 | source-map: 0.6.1 |
| 2017 | 1988 | ||
| 2018 | css-tree@2.3.1: | ||
| 2019 | dependencies: | ||
| 2020 | mdn-data: 2.0.30 | ||
| 2021 | source-map-js: 1.2.1 | ||
| 2022 | |||
| 2023 | css-tree@3.1.0: | 1989 | css-tree@3.1.0: |
| 2024 | dependencies: | 1990 | dependencies: |
| 2025 | mdn-data: 2.12.2 | 1991 | mdn-data: 2.12.2 |
| @@ -2337,8 +2303,6 @@ snapshots: | |||
| 2337 | 2303 | ||
| 2338 | kind-of@6.0.3: {} | 2304 | kind-of@6.0.3: {} |
| 2339 | 2305 | ||
| 2340 | known-css-properties@0.34.0: {} | ||
| 2341 | |||
| 2342 | known-css-properties@0.37.0: {} | 2306 | known-css-properties@0.37.0: {} |
| 2343 | 2307 | ||
| 2344 | kuler@2.0.0: {} | 2308 | kuler@2.0.0: {} |
| @@ -2370,10 +2334,10 @@ snapshots: | |||
| 2370 | 2334 | ||
| 2371 | mdn-data@2.0.14: {} | 2335 | mdn-data@2.0.14: {} |
| 2372 | 2336 | ||
| 2373 | mdn-data@2.0.30: {} | ||
| 2374 | |||
| 2375 | mdn-data@2.12.2: {} | 2337 | mdn-data@2.12.2: {} |
| 2376 | 2338 | ||
| 2339 | mdn-data@2.27.0: {} | ||
| 2340 | |||
| 2377 | meow@14.0.0: {} | 2341 | meow@14.0.0: {} |
| 2378 | 2342 | ||
| 2379 | merge2@1.4.1: {} | 2343 | merge2@1.4.1: {} |
| @@ -2467,11 +2431,6 @@ snapshots: | |||
| 2467 | dependencies: | 2431 | dependencies: |
| 2468 | postcss: 8.5.6 | 2432 | postcss: 8.5.6 |
| 2469 | 2433 | ||
| 2470 | postcss-selector-parser@6.1.2: | ||
| 2471 | dependencies: | ||
| 2472 | cssesc: 3.0.0 | ||
| 2473 | util-deprecate: 1.0.2 | ||
| 2474 | |||
| 2475 | postcss-selector-parser@7.1.1: | 2434 | postcss-selector-parser@7.1.1: |
| 2476 | dependencies: | 2435 | dependencies: |
| 2477 | cssesc: 3.0.0 | 2436 | cssesc: 3.0.0 |
| @@ -2759,7 +2718,7 @@ snapshots: | |||
| 2759 | is-fullwidth-code-point: 3.0.0 | 2718 | is-fullwidth-code-point: 3.0.0 |
| 2760 | strip-ansi: 6.0.1 | 2719 | strip-ansi: 6.0.1 |
| 2761 | 2720 | ||
| 2762 | string-width@8.1.0: | 2721 | string-width@8.1.1: |
| 2763 | dependencies: | 2722 | dependencies: |
| 2764 | get-east-asian-width: 1.4.0 | 2723 | get-east-asian-width: 1.4.0 |
| 2765 | strip-ansi: 7.1.2 | 2724 | strip-ansi: 7.1.2 |
| @@ -2786,37 +2745,38 @@ snapshots: | |||
| 2786 | 2745 | ||
| 2787 | style-search@0.1.0: {} | 2746 | style-search@0.1.0: {} |
| 2788 | 2747 | ||
| 2789 | stylelint-config-recess-order@7.6.0(stylelint-order@7.0.1(stylelint@17.0.0))(stylelint@17.0.0): | 2748 | stylelint-config-recess-order@7.6.0(stylelint-order@7.0.1(stylelint@17.1.1))(stylelint@17.1.1): |
| 2790 | dependencies: | 2749 | dependencies: |
| 2791 | stylelint: 17.0.0 | 2750 | stylelint: 17.1.1 |
| 2792 | stylelint-order: 7.0.1(stylelint@17.0.0) | 2751 | stylelint-order: 7.0.1(stylelint@17.1.1) |
| 2793 | 2752 | ||
| 2794 | stylelint-config-sass-guidelines@12.1.0(postcss@8.5.6)(stylelint@17.0.0): | 2753 | stylelint-config-sass-guidelines@13.0.0(postcss@8.5.6)(stylelint@17.1.1): |
| 2795 | dependencies: | 2754 | dependencies: |
| 2796 | '@stylistic/stylelint-plugin': 3.1.1(stylelint@17.0.0) | 2755 | '@stylistic/stylelint-plugin': 5.0.1(stylelint@17.1.1) |
| 2797 | postcss: 8.5.6 | 2756 | postcss: 8.5.6 |
| 2798 | postcss-scss: 4.0.9(postcss@8.5.6) | 2757 | postcss-scss: 4.0.9(postcss@8.5.6) |
| 2799 | stylelint: 17.0.0 | 2758 | stylelint: 17.1.1 |
| 2800 | stylelint-scss: 6.7.0(stylelint@17.0.0) | 2759 | stylelint-scss: 7.0.0(stylelint@17.1.1) |
| 2801 | 2760 | ||
| 2802 | stylelint-order@7.0.1(stylelint@17.0.0): | 2761 | stylelint-order@7.0.1(stylelint@17.1.1): |
| 2803 | dependencies: | 2762 | dependencies: |
| 2804 | postcss: 8.5.6 | 2763 | postcss: 8.5.6 |
| 2805 | postcss-sorting: 9.1.0(postcss@8.5.6) | 2764 | postcss-sorting: 9.1.0(postcss@8.5.6) |
| 2806 | stylelint: 17.0.0 | 2765 | stylelint: 17.1.1 |
| 2807 | 2766 | ||
| 2808 | stylelint-scss@6.7.0(stylelint@17.0.0): | 2767 | stylelint-scss@7.0.0(stylelint@17.1.1): |
| 2809 | dependencies: | 2768 | dependencies: |
| 2810 | css-tree: 2.3.1 | 2769 | css-tree: 3.1.0 |
| 2811 | is-plain-object: 5.0.0 | 2770 | is-plain-object: 5.0.0 |
| 2812 | known-css-properties: 0.34.0 | 2771 | known-css-properties: 0.37.0 |
| 2772 | mdn-data: 2.27.0 | ||
| 2813 | postcss-media-query-parser: 0.2.3 | 2773 | postcss-media-query-parser: 0.2.3 |
| 2814 | postcss-resolve-nested-selector: 0.1.6 | 2774 | postcss-resolve-nested-selector: 0.1.6 |
| 2815 | postcss-selector-parser: 6.1.2 | 2775 | postcss-selector-parser: 7.1.1 |
| 2816 | postcss-value-parser: 4.2.0 | 2776 | postcss-value-parser: 4.2.0 |
| 2817 | stylelint: 17.0.0 | 2777 | stylelint: 17.1.1 |
| 2818 | 2778 | ||
| 2819 | stylelint@17.0.0: | 2779 | stylelint@17.1.1: |
| 2820 | dependencies: | 2780 | dependencies: |
| 2821 | '@csstools/css-parser-algorithms': 4.0.0(@csstools/css-tokenizer@4.0.0) | 2781 | '@csstools/css-parser-algorithms': 4.0.0(@csstools/css-tokenizer@4.0.0) |
| 2822 | '@csstools/css-syntax-patches-for-csstree': 1.0.26 | 2782 | '@csstools/css-syntax-patches-for-csstree': 1.0.26 |
| @@ -2851,7 +2811,7 @@ snapshots: | |||
| 2851 | postcss-safe-parser: 7.0.1(postcss@8.5.6) | 2811 | postcss-safe-parser: 7.0.1(postcss@8.5.6) |
| 2852 | postcss-selector-parser: 7.1.1 | 2812 | postcss-selector-parser: 7.1.1 |
| 2853 | postcss-value-parser: 4.2.0 | 2813 | postcss-value-parser: 4.2.0 |
| 2854 | string-width: 8.1.0 | 2814 | string-width: 8.1.1 |
| 2855 | supports-hyperlinks: 4.4.0 | 2815 | supports-hyperlinks: 4.4.0 |
| 2856 | svg-tags: 1.0.0 | 2816 | svg-tags: 1.0.0 |
| 2857 | table: 6.9.0 | 2817 | table: 6.9.0 |
diff --git a/src/objects/_lightbox.scss b/src/objects/_lightbox.scss index b95148f..5ff6d93 100644 --- a/src/objects/_lightbox.scss +++ b/src/objects/_lightbox.scss | |||
| @@ -8,127 +8,104 @@ | |||
| 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 | box-sizing: border-box; |
| 16 | min-block-size: 0; | 19 | display: none; |
| 20 | flex: 1 1 auto; | ||
| 21 | flex-direction: column; | ||
| 22 | justify-content: flex-end; | ||
| 23 | inline-size: 100%; | ||
| 24 | max-inline-size: none; | ||
| 25 | block-size: 100%; | ||
| 26 | min-block-size: 0; | ||
| 27 | max-block-size: none; | ||
| 28 | padding: 0; | ||
| 29 | margin: 0; | ||
| 30 | background-color: transparent; | ||
| 31 | border: 0; | ||
| 32 | |||
| 33 | &::backdrop { | ||
| 34 | background-color: props.get(backdrop.$bg-color); | ||
| 35 | backdrop-filter: blur(props.get(backdrop.$blur)); | ||
| 36 | } | ||
| 37 | |||
| 38 | &[open] { | ||
| 39 | display: flex; | ||
| 40 | } | ||
| 17 | 41 | ||
| 18 | @include bem.elem('header') { | 42 | @include bem.elem('controls') { |
| 19 | display: flex; | 43 | position: absolute; |
| 20 | grid-area: header; | 44 | inset-block-start: props.get(vars.$pad); |
| 21 | align-items: flex-start; | 45 | inset-inline-end: props.get(vars.$pad); |
| 22 | padding-block-start: props.get(vars.$pad); | 46 | z-index: 20; |
| 23 | padding-inline: props.get(vars.$pad); | 47 | padding: props.get(vars.$controls--pad-y) props.get(vars.$controls--pad-x); |
| 48 | border-radius: 10em; | ||
| 24 | } | 49 | } |
| 25 | 50 | ||
| 26 | @include bem.elem('img') { | 51 | @include bem.elem('img') { |
| 27 | box-sizing: border-box; | 52 | position: relative; |
| 53 | z-index: 10; | ||
| 28 | display: block; | 54 | display: block; |
| 29 | grid-area: content; | 55 | flex: 1 1 auto; |
| 30 | place-self: center; | ||
| 31 | inline-size: auto; | 56 | inline-size: auto; |
| 57 | min-inline-size: 0; | ||
| 32 | max-inline-size: 100%; | 58 | max-inline-size: 100%; |
| 33 | block-size: auto; | 59 | block-size: auto; |
| 34 | max-block-size: props.get(vars.$image--max-height); | 60 | min-block-size: 0; |
| 35 | padding: props.get(vars.$pad); | 61 | max-block-size: 100%; |
| 36 | margin-inline: auto; | 62 | margin: auto; |
| 37 | border-radius: calc(props.get(vars.$pad) + props.get(vars.$image--border-radius)); | 63 | object-fit: contain; |
| 38 | } | ||
| 39 | 64 | ||
| 40 | @include bem.elem('thumbnails') { | 65 | @include bem.is('hidden') { |
| 41 | display: none; | 66 | display: none; |
| 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 | } | ||
| 48 | 67 | ||
| 49 | @include bem.elem('close-btn') { | 68 | @include bem.next-elem('placeholder') { |
| 50 | display: none; | 69 | display: block; |
| 51 | flex: 0 0 auto; | ||
| 52 | margin-block-start: calc(-.5 * props.get(vars.$pad)); | ||
| 53 | margin-inline: auto calc(-.5 * props.get(vars.$pad)); | ||
| 54 | font-size: props.get(vars.$close-button--font-size); | ||
| 55 | } | ||
| 56 | |||
| 57 | @include bem.elem('nav-btn') { | ||
| 58 | position: relative; | ||
| 59 | display: none; | ||
| 60 | align-self: center; | ||
| 61 | overflow: visible; | ||
| 62 | font-size: props.get(vars.$nav-button--font-size); | ||
| 63 | |||
| 64 | &::before { | ||
| 65 | position: absolute; | ||
| 66 | inset-block-start: 50%; | ||
| 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 | |||
| 87 | &::before { | ||
| 88 | inset-inline-end: 0; | ||
| 89 | } | 70 | } |
| 90 | } | 71 | } |
| 91 | } | 72 | } |
| 92 | 73 | ||
| 93 | @include bem.modifier('interactive') { | 74 | @include bem.elem('placeholder') { |
| 94 | display: grid; | 75 | position: absolute; |
| 95 | grid-template-areas: | 76 | inset-block-start: 50%; |
| 96 | 'header header header' | 77 | inset-inline-start: 50%; |
| 97 | 'prev content next' | 78 | z-index: 5; |
| 98 | 'thumbnails thumbnails thumbnails'; | 79 | display: none; |
| 99 | grid-template-rows: auto minmax(0, 1fr) auto auto; | 80 | transform: translate(-50, -50); |
| 100 | grid-template-columns: auto minmax(0, 1fr) auto; | 81 | } |
| 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 | 82 | ||
| 116 | @include bem.elem('thumbnails') { | 83 | @include bem.elem('thumbnails') { |
| 117 | display: flex; | 84 | display: flex; |
| 118 | } | 85 | flex: 0 0 auto; |
| 86 | gap: props.get(vars.$thumbnail--spacing); | ||
| 87 | justify-content: center; | ||
| 88 | padding: props.get(vars.$pad); | ||
| 89 | overflow: auto; | ||
| 90 | } | ||
| 119 | 91 | ||
| 120 | @include bem.elem('close-btn') { | 92 | @include bem.elem('thumbnail') { |
| 121 | display: block; | 93 | inline-size: props.get(vars.$thumbnail--width); |
| 122 | } | 94 | transition: inline-size .1s ease, margin-inline .1s ease; |
| 123 | 95 | ||
| 124 | @include bem.elem('nav-btn') { | 96 | @include bem.is('selected') { |
| 125 | display: block; | 97 | inline-size: props.get(vars.$thumbnail--active--width); |
| 98 | margin-inline: props.get(vars.$thumbnail--active--spacing); | ||
| 126 | } | 99 | } |
| 127 | } | 100 | } |
| 128 | 101 | ||
| 129 | @each $theme in map.keys(props.get(vars.$static-themes)) { | 102 | @each $theme in map.keys(props.get(vars.$static-themes)) { |
| 130 | @include bem.modifier(string.slice($theme, 3)) { | 103 | @include bem.modifier(string.slice($theme, 3)) { |
| 131 | color: props.get(vars.$static-themes, $theme, --text); | 104 | color: props.get(vars.$static-themes, $theme, --text); |
| 105 | |||
| 106 | @include bem.elem('controls') { | ||
| 107 | background-color: props.get(vars.$static-themes, $theme, --controls-bg); | ||
| 108 | } | ||
| 132 | } | 109 | } |
| 133 | } | 110 | } |
| 134 | } | 111 | } |
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" |
