Migrate from prettier to biome

pull/1203/head
Lim Chee Aun 2025-06-20 16:33:54 +08:00
rodzic bcfa437be3
commit f6e2462e0b
32 zmienionych plików z 426 dodań i 331 usunięć

Wyświetl plik

@ -1,19 +1,16 @@
name: Prettier on pull requests
name: Code formatting check on pull requests
on:
pull_request:
workflow_dispatch:
jobs:
prettier:
format-check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
# Need node to install prettier plugin(s)
- uses: actions/setup-node@v4
with:
node-version: 20
- run: npm ci
- run: |
echo "Prettier-ing files"
npx prettier "src/**/*.{js,jsx}" --check
- run: npx biome check

Wyświetl plik

@ -1,22 +0,0 @@
{
"tabWidth": 2,
"useTabs": false,
"singleQuote": true,
"trailingComma": "all",
"plugins": ["@ianvs/prettier-plugin-sort-imports"],
"importOrder": [
"^[^.].*.css$",
"index.css$",
".css$",
"",
"./polyfills",
"",
"<THIRD_PARTY_MODULES>",
"",
"/assets/",
"",
"^../",
"",
"^[./]"
]
}

59
biome.json 100644
Wyświetl plik

@ -0,0 +1,59 @@
{
"$schema": "https://biomejs.dev/schemas/2.0.0/schema.json",
"vcs": {
"enabled": true,
"clientKind": "git",
"useIgnoreFile": true
},
"files": {
"includes": [
"src/**/*.{js,jsx,ts,tsx,css}",
"*.{js,jsx,ts,tsx,json,jsonc}",
"scripts/**/*.js",
"!wrangler.jsonc",
"!i18n-volunteers.json"
]
},
"formatter": {
"indentStyle": "space"
},
"linter": {
"enabled": false
},
"javascript": {
"formatter": {
"quoteStyle": "single"
}
},
"css": {
"formatter": {
"quoteStyle": "single"
}
},
"assist": {
"actions": {
"source": {
"organizeImports": {
"level": "on",
"options": {
"groups": [
"**/*.css",
":BLANK_LINE:",
"./polyfills",
":BLANK_LINE:",
[":NODE:", ":BUN:"],
":BLANK_LINE:",
[":PACKAGE:", ":PACKAGE_WITH_PROTOCOL:"],
":BLANK_LINE:",
"**/assets/**",
":BLANK_LINE:",
"../**",
":BLANK_LINE:",
["./**", "./"]
]
}
}
}
}
}
}

304
package-lock.json wygenerowano
Wyświetl plik

@ -50,7 +50,7 @@
"valtio": "2.1.5"
},
"devDependencies": {
"@ianvs/prettier-plugin-sort-imports": "~4.4.2",
"@biomejs/biome": "2.0.0",
"@lingui/babel-plugin-lingui-macro": "~5.3.2",
"@lingui/cli": "~5.3.2",
"@lingui/vite-plugin": "~5.3.2",
@ -60,7 +60,6 @@
"postcss": "~8.5.5",
"postcss-dark-theme-class": "~1.3.0",
"postcss-preset-env": "~10.2.3",
"prettier": "3.5.3",
"sonda": "~0.8.0",
"twitter-text": "~3.1.0",
"vite": "~6.3.5",
@ -1604,6 +1603,169 @@
"node": ">=6.9.0"
}
},
"node_modules/@biomejs/biome": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/@biomejs/biome/-/biome-2.0.0.tgz",
"integrity": "sha512-BlUoXEOI/UQTDEj/pVfnkMo8SrZw3oOWBDrXYFT43V7HTkIUDkBRY53IC5Jx1QkZbaB+0ai1wJIfYwp9+qaJTQ==",
"dev": true,
"license": "MIT OR Apache-2.0",
"bin": {
"biome": "bin/biome"
},
"engines": {
"node": ">=14.21.3"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/biome"
},
"optionalDependencies": {
"@biomejs/cli-darwin-arm64": "2.0.0",
"@biomejs/cli-darwin-x64": "2.0.0",
"@biomejs/cli-linux-arm64": "2.0.0",
"@biomejs/cli-linux-arm64-musl": "2.0.0",
"@biomejs/cli-linux-x64": "2.0.0",
"@biomejs/cli-linux-x64-musl": "2.0.0",
"@biomejs/cli-win32-arm64": "2.0.0",
"@biomejs/cli-win32-x64": "2.0.0"
}
},
"node_modules/@biomejs/cli-darwin-arm64": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-arm64/-/cli-darwin-arm64-2.0.0.tgz",
"integrity": "sha512-QvqWYtFFhhxdf8jMAdJzXW+Frc7X8XsnHQLY+TBM1fnT1TfeV/v9vsFI5L2J7GH6qN1+QEEJ19jHibCY2Ypplw==",
"cpu": [
"arm64"
],
"dev": true,
"license": "MIT OR Apache-2.0",
"optional": true,
"os": [
"darwin"
],
"engines": {
"node": ">=14.21.3"
}
},
"node_modules/@biomejs/cli-darwin-x64": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-x64/-/cli-darwin-x64-2.0.0.tgz",
"integrity": "sha512-5JFhls1EfmuIH4QGFPlNpxJQFC6ic3X1ltcoLN+eSRRIPr6H/lUS1ttuD0Fj7rPgPhZqopK/jfH8UVj/1hIsQw==",
"cpu": [
"x64"
],
"dev": true,
"license": "MIT OR Apache-2.0",
"optional": true,
"os": [
"darwin"
],
"engines": {
"node": ">=14.21.3"
}
},
"node_modules/@biomejs/cli-linux-arm64": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64/-/cli-linux-arm64-2.0.0.tgz",
"integrity": "sha512-BAH4QVi06TzAbVchXdJPsL0Z/P87jOfes15rI+p3EX9/EGTfIjaQ9lBVlHunxcmoptaA5y1Hdb9UYojIhmnjIw==",
"cpu": [
"arm64"
],
"dev": true,
"license": "MIT OR Apache-2.0",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=14.21.3"
}
},
"node_modules/@biomejs/cli-linux-arm64-musl": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64-musl/-/cli-linux-arm64-musl-2.0.0.tgz",
"integrity": "sha512-Bxsz8ki8+b3PytMnS5SgrGV+mbAWwIxI3ydChb/d1rURlJTMdxTTq5LTebUnlsUWAX6OvJuFeiVq9Gjn1YbCyA==",
"cpu": [
"arm64"
],
"dev": true,
"license": "MIT OR Apache-2.0",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=14.21.3"
}
},
"node_modules/@biomejs/cli-linux-x64": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/@biomejs/cli-linux-x64/-/cli-linux-x64-2.0.0.tgz",
"integrity": "sha512-09PcOGYTtkopWRm6mZ/B6Mr6UHdkniUgIG/jLBv+2J8Z61ezRE+xQmpi3yNgUrFIAU4lPA9atg7mhvE/5Bo7Wg==",
"cpu": [
"x64"
],
"dev": true,
"license": "MIT OR Apache-2.0",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=14.21.3"
}
},
"node_modules/@biomejs/cli-linux-x64-musl": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/@biomejs/cli-linux-x64-musl/-/cli-linux-x64-musl-2.0.0.tgz",
"integrity": "sha512-tiQ0ABxMJb9I6GlfNp0ulrTiQSFacJRJO8245FFwE3ty3bfsfxlU/miblzDIi+qNrgGsLq5wIZcVYGp4c+HXZA==",
"cpu": [
"x64"
],
"dev": true,
"license": "MIT OR Apache-2.0",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">=14.21.3"
}
},
"node_modules/@biomejs/cli-win32-arm64": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/@biomejs/cli-win32-arm64/-/cli-win32-arm64-2.0.0.tgz",
"integrity": "sha512-vrTtuGu91xNTEQ5ZcMJBZuDlqr32DWU1r14UfePIGndF//s2WUAmer4FmgoPgruo76rprk37e8S2A2c0psXdxw==",
"cpu": [
"arm64"
],
"dev": true,
"license": "MIT OR Apache-2.0",
"optional": true,
"os": [
"win32"
],
"engines": {
"node": ">=14.21.3"
}
},
"node_modules/@biomejs/cli-win32-x64": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/@biomejs/cli-win32-x64/-/cli-win32-x64-2.0.0.tgz",
"integrity": "sha512-2USVQ0hklNsph/KIR72ZdeptyXNnQ3JdzPn3NbjI4Sna34CnxeiYAaZcZzXPDl5PYNFBivV4xmvT3Z3rTmyDBg==",
"cpu": [
"x64"
],
"dev": true,
"license": "MIT OR Apache-2.0",
"optional": true,
"os": [
"win32"
],
"engines": {
"node": ">=14.21.3"
}
},
"node_modules/@csstools/cascade-layer-name-parser": {
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/@csstools/cascade-layer-name-parser/-/cascade-layer-name-parser-2.0.5.tgz",
@ -3176,41 +3338,6 @@
"dom-input-range": "^2.0.0"
}
},
"node_modules/@ianvs/prettier-plugin-sort-imports": {
"version": "4.4.2",
"resolved": "https://registry.npmjs.org/@ianvs/prettier-plugin-sort-imports/-/prettier-plugin-sort-imports-4.4.2.tgz",
"integrity": "sha512-KkVFy3TLh0OFzimbZglMmORi+vL/i2OFhEs5M07R9w0IwWAGpsNNyE4CY/2u0YoMF5bawKC2+8/fUH60nnNtjw==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
"@babel/generator": "^7.26.2",
"@babel/parser": "^7.26.2",
"@babel/traverse": "^7.25.9",
"@babel/types": "^7.26.0",
"semver": "^7.5.2"
},
"peerDependencies": {
"@vue/compiler-sfc": "2.7.x || 3.x",
"prettier": "2 || 3 || ^4.0.0-0"
},
"peerDependenciesMeta": {
"@vue/compiler-sfc": {
"optional": true
}
}
},
"node_modules/@ianvs/prettier-plugin-sort-imports/node_modules/semver": {
"version": "7.6.2",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz",
"integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==",
"dev": true,
"bin": {
"semver": "bin/semver.js"
},
"engines": {
"node": ">=10"
}
},
"node_modules/@iconify-icons/mingcute": {
"version": "1.2.9",
"resolved": "https://registry.npmjs.org/@iconify-icons/mingcute/-/mingcute-1.2.9.tgz",
@ -4230,93 +4357,6 @@
"devOptional": true,
"license": "MIT"
},
"node_modules/@vue/compiler-core": {
"version": "3.2.45",
"resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.45.tgz",
"integrity": "sha512-rcMj7H+PYe5wBV3iYeUgbCglC+pbpN8hBLTJvRiK2eKQiWqu+fG9F+8sW99JdL4LQi7Re178UOxn09puSXvn4A==",
"dev": true,
"license": "MIT",
"optional": true,
"peer": true,
"dependencies": {
"@babel/parser": "^7.16.4",
"@vue/shared": "3.2.45",
"estree-walker": "^2.0.2",
"source-map": "^0.6.1"
}
},
"node_modules/@vue/compiler-dom": {
"version": "3.2.45",
"resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.45.tgz",
"integrity": "sha512-tyYeUEuKqqZO137WrZkpwfPCdiiIeXYCcJ8L4gWz9vqaxzIQRccTSwSWZ/Axx5YR2z+LvpUbmPNXxuBU45lyRw==",
"dev": true,
"license": "MIT",
"optional": true,
"peer": true,
"dependencies": {
"@vue/compiler-core": "3.2.45",
"@vue/shared": "3.2.45"
}
},
"node_modules/@vue/compiler-sfc": {
"version": "3.2.45",
"resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.45.tgz",
"integrity": "sha512-1jXDuWah1ggsnSAOGsec8cFjT/K6TMZ0sPL3o3d84Ft2AYZi2jWJgRMjw4iaK0rBfA89L5gw427H4n1RZQBu6Q==",
"dev": true,
"license": "MIT",
"optional": true,
"peer": true,
"dependencies": {
"@babel/parser": "^7.16.4",
"@vue/compiler-core": "3.2.45",
"@vue/compiler-dom": "3.2.45",
"@vue/compiler-ssr": "3.2.45",
"@vue/reactivity-transform": "3.2.45",
"@vue/shared": "3.2.45",
"estree-walker": "^2.0.2",
"magic-string": "^0.25.7",
"postcss": "^8.1.10",
"source-map": "^0.6.1"
}
},
"node_modules/@vue/compiler-ssr": {
"version": "3.2.45",
"resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.45.tgz",
"integrity": "sha512-6BRaggEGqhWht3lt24CrIbQSRD5O07MTmd+LjAn5fJj568+R9eUD2F7wMQJjX859seSlrYog7sUtrZSd7feqrQ==",
"dev": true,
"license": "MIT",
"optional": true,
"peer": true,
"dependencies": {
"@vue/compiler-dom": "3.2.45",
"@vue/shared": "3.2.45"
}
},
"node_modules/@vue/reactivity-transform": {
"version": "3.2.45",
"resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.45.tgz",
"integrity": "sha512-BHVmzYAvM7vcU5WmuYqXpwaBHjsS8T63jlKGWVtHxAHIoMIlmaMyurUSEs1Zcg46M4AYT5MtB1U274/2aNzjJQ==",
"dev": true,
"license": "MIT",
"optional": true,
"peer": true,
"dependencies": {
"@babel/parser": "^7.16.4",
"@vue/compiler-core": "3.2.45",
"@vue/shared": "3.2.45",
"estree-walker": "^2.0.2",
"magic-string": "^0.25.7"
}
},
"node_modules/@vue/shared": {
"version": "3.2.45",
"resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.45.tgz",
"integrity": "sha512-Ewzq5Yhimg7pSztDV+RH1UDKBzmtqieXQlpTVm2AwraoRL/Rks96mvd8Vgi7Lj+h+TH8dv7mXD3FRZR3TUvbSg==",
"dev": true,
"license": "MIT",
"optional": true,
"peer": true
},
"node_modules/acorn": {
"version": "8.12.1",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz",
@ -8616,22 +8656,6 @@
"url": "https://opencollective.com/preact"
}
},
"node_modules/prettier": {
"version": "3.5.3",
"resolved": "https://registry.npmjs.org/prettier/-/prettier-3.5.3.tgz",
"integrity": "sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==",
"dev": true,
"license": "MIT",
"bin": {
"prettier": "bin/prettier.cjs"
},
"engines": {
"node": ">=14"
},
"funding": {
"url": "https://github.com/prettier/prettier?sponsor=1"
}
},
"node_modules/pretty-bytes": {
"version": "6.1.1",
"resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-6.1.1.tgz",

Wyświetl plik

@ -58,7 +58,7 @@
"valtio": "2.1.5"
},
"devDependencies": {
"@ianvs/prettier-plugin-sort-imports": "~4.4.2",
"@biomejs/biome": "2.0.0",
"@lingui/babel-plugin-lingui-macro": "~5.3.2",
"@lingui/cli": "~5.3.2",
"@lingui/vite-plugin": "~5.3.2",
@ -68,7 +68,6 @@
"postcss": "~8.5.5",
"postcss-dark-theme-class": "~1.3.0",
"postcss-preset-env": "~10.2.3",
"prettier": "3.5.3",
"sonda": "~0.8.0",
"twitter-text": "~3.1.0",
"vite": "~6.3.5",

Wyświetl plik

@ -330,7 +330,6 @@ var _rollbarConfig = {
for (
var a = e.removeEventListener;
a._rollbarOldRemove && a.belongsToShim;
)
a = a._rollbarOldRemove;
var l = function (r, e, o) {
@ -407,7 +406,6 @@ var _rollbarConfig = {
},
i = 0;
(o = window._rollbarShims[i++]);
)
n || (n = o.handler),
o.handler._swapAndProcessMessages(l, o.messages);

Wyświetl plik

@ -1,4 +1,5 @@
import fs from 'fs';
import regexSupplant from 'twitter-text/dist/lib/regexSupplant.js';
import validDomain from 'twitter-text/dist/regexp/validDomain.js';
import validPortNumber from 'twitter-text/dist/regexp/validPortNumber.js';

Wyświetl plik

@ -448,8 +448,7 @@ a[href^='http'][rel*='nofollow']:visited:not(:has(div)) {
var(--line-radius), var(--line-radius); */
--curves-radius: calc(var(--curves-width) / 2);
height: calc(var(--curves-width) - var(--line-width));
background-image:
radial-gradient(
background-image: radial-gradient(
circle at bottom var(--forward),
transparent calc(var(--curves-radius) - var(--line-width)),
var(--comment-line-color) calc(var(--curves-radius) - var(--line-width))
@ -480,8 +479,7 @@ a[href^='http'][rel*='nofollow']:visited:not(:has(div)) {
transparent
);
&.hero:not(:has(+ .thread), :first-child, :only-child, :last-child) {
background-image:
linear-gradient(
background-image: linear-gradient(
var(--line-dir),
transparent,
transparent var(--indent-small-start),
@ -557,8 +555,10 @@ a[href^='http'][rel*='nofollow']:visited:not(:has(div)) {
+ .replies
.replies-summary {
margin-inline-start: calc(
var(--avatar-size) + var(--avatar-margin-start) + var(--avatar-margin-end) +
(var(--line-margin-end) * (var(--comments-level) - 1))
var(--avatar-size) +
var(--avatar-margin-start) +
var(--avatar-margin-end) +
(var(--line-margin-end) * (var(--comments-level) - 1))
);
}
.timeline.contextual
@ -567,8 +567,10 @@ a[href^='http'][rel*='nofollow']:visited:not(:has(div)) {
+ .replies
:is(.status-link, .status-focus) {
padding-inline-start: calc(
var(--avatar-size) + var(--avatar-margin-start) + var(--avatar-margin-end) +
(var(--line-margin-end) * (var(--comments-level) - 1))
var(--avatar-size) +
var(--avatar-margin-start) +
var(--avatar-margin-end) +
(var(--line-margin-end) * (var(--comments-level) - 1))
);
}
.timeline.contextual
@ -577,7 +579,9 @@ a[href^='http'][rel*='nofollow']:visited:not(:has(div)) {
+ .replies
.replies-summary {
margin-inline-start: calc(
var(--thread-start) + var(--line-margin-end) * var(--comments-level)
var(--thread-start) +
var(--line-margin-end) *
var(--comments-level)
);
}
.timeline.contextual
@ -586,7 +590,9 @@ a[href^='http'][rel*='nofollow']:visited:not(:has(div)) {
+ .replies
:is(.status-link, .status-focus) {
padding-inline-start: calc(
var(--thread-start) + var(--line-margin-end) * var(--comments-level)
var(--thread-start) +
var(--line-margin-end) *
var(--comments-level)
);
}
.timeline.contextual > li.descendant:not(.thread):before {
@ -611,7 +617,9 @@ a[href^='http'][rel*='nofollow']:visited:not(:has(div)) {
}
.timeline.contextual > li.ancestor .replies-link {
margin-inline-start: calc(
var(--avatar-size) + var(--avatar-margin-start) + var(--avatar-margin-end)
var(--avatar-size) +
var(--avatar-margin-start) +
var(--avatar-margin-end)
);
}
.timeline.contextual
@ -619,7 +627,9 @@ a[href^='http'][rel*='nofollow']:visited:not(:has(div)) {
> :is(.status-link, .status-focus)
.replies-link {
margin-inline-start: calc(
var(--avatar-size) + var(--avatar-margin-start) + var(--avatar-margin-end)
var(--avatar-size) +
var(--avatar-margin-start) +
var(--avatar-margin-end)
);
}
.timeline.contextual > li .replies-link * {
@ -774,7 +784,9 @@ a[href^='http'][rel*='nofollow']:visited:not(:has(div)) {
}
.timeline.contextual > li .replies li:not(.content li) {
--line-start: calc(
var(--thread-start) + var(--line-margin-end) * var(--comments-level)
var(--thread-start) +
var(--line-margin-end) *
var(--comments-level)
);
--line-end: calc(var(--line-start) + var(--line-width));
background-image: linear-gradient(
@ -796,8 +808,10 @@ a[href^='http'][rel*='nofollow']:visited:not(:has(div)) {
} */
.timeline.contextual > li.thread .replies li:not(.content li) {
--line-start: calc(
var(--avatar-size) + var(--avatar-margin-start) + var(--avatar-margin-end) +
(var(--line-margin-end) * (var(--comments-level) - 1))
var(--avatar-size) +
var(--avatar-margin-start) +
var(--avatar-margin-end) +
(var(--line-margin-end) * (var(--comments-level) - 1))
);
}
/* .timeline.contextual > li.thread .replies .replies li {
@ -840,8 +854,10 @@ a[href^='http'][rel*='nofollow']:visited:not(:has(div)) {
} */
.timeline.contextual > li.thread .replies li:not(.content li):before {
--line-start: calc(
var(--avatar-size) + var(--avatar-margin-start) + var(--avatar-margin-end) +
(var(--line-margin-end) * (var(--comments-level) - 1))
var(--avatar-size) +
var(--avatar-margin-start) +
var(--avatar-margin-end) +
(var(--line-margin-end) * (var(--comments-level) - 1))
);
}
/* .timeline.contextual > li.thread .replies .replies li:before {
@ -976,9 +992,7 @@ a[href^='http'][rel*='nofollow']:visited:not(:has(div)) {
}
.timeline .show-more {
padding-inline-start: calc(
var(--line-end) + var(--line-margin-end)
) !important;
padding-inline-start: calc(var(--line-end) + var(--line-margin-end)) !important;
text-align: start;
background-color: transparent !important;
backdrop-filter: none !important;
@ -1069,13 +1083,11 @@ a[href^='http'][rel*='nofollow']:visited:not(:has(div)) {
position: absolute;
inset: 0;
pointer-events: none;
background-image:
radial-gradient(
background-image: radial-gradient(
ellipse 50% 32px at bottom center,
var(--carousel-faded-color),
transparent
),
linear-gradient(to top, var(--bg-color) 8px, transparent 64px);
), linear-gradient(to top, var(--bg-color) 8px, transparent 64px);
background-repeat: no-repeat;
background-position: bottom center;
}
@ -2346,8 +2358,7 @@ body > .szh-menu-container {
var(--bg-color) var(--middle-circle-radius),
transparent var(--middle-circle-radius)
);
background-image:
var(--middle-circle),
background-image: var(--middle-circle),
conic-gradient(var(--color) var(--fill), var(--outline-color) 0);
transform: scale(0.7);
&:dir(rtl) {
@ -2690,14 +2701,17 @@ ul.link-list li a .icon {
}
#columns {
/* Any buttons except nav menu button on first header-side, on 1st column */
.deck-container:first-of-type
.header-grid
.deck-container:first-of-type .header-grid
.header-side:first-of-type
> *:not(.nav-menu-button),
/* Any buttons on last header-side, on 1st column */
.deck-container:first-of-type .header-grid .header-side:last-of-type > *,
.deck-container:first-of-type .header-grid
.header-side:last-of-type
> *,
/* Any buttons on any header-side, on columns after 1st */
.deck-container:not(:first-of-type) .header-grid .header-side > * {
.deck-container:not(:first-of-type) .header-grid
.header-side
> * {
display: none;
}
}

Wyświetl plik

@ -749,9 +749,9 @@
--shadow-spread: calc(var(--shadow-blur) * -0.75);
box-shadow:
calc(var(--shadow-offset) * -1) var(--shadow-offset) var(--shadow-blur)
var(--shadow-spread) var(--header-color-1, var(--drop-shadow-color)),
var(--shadow-spread) var(--header-color-1, var(--drop-shadow-color)),
var(--shadow-offset) var(--shadow-offset) var(--shadow-blur)
var(--shadow-spread) var(--header-color-2, var(--drop-shadow-color));
var(--shadow-spread) var(--header-color-2, var(--drop-shadow-color));
}
/* .timeline-start .account-container .header-banner {
margin-bottom: -77px;
@ -845,9 +845,11 @@
overflow: hidden;
border: 1px solid var(--outline-color);
/* checkerboard background */
background-image:
linear-gradient(45deg, var(--img-bg-color) 25%, transparent 25%),
linear-gradient(-45deg, var(--img-bg-color) 25%, transparent 25%),
background-image: linear-gradient(
45deg,
var(--img-bg-color) 25%,
transparent 25%
), linear-gradient(-45deg, var(--img-bg-color) 25%, transparent 25%),
linear-gradient(45deg, transparent 75%, var(--img-bg-color) 75%),
linear-gradient(-45deg, transparent 75%, var(--img-bg-color) 75%);
background-size: 10px 10px;
@ -1046,11 +1048,7 @@
.account-block-content {
min-width: 0;
mask-image: linear-gradient(
var(--to-backward),
transparent,
black 16px
);
mask-image: linear-gradient(var(--to-backward), transparent, black 16px);
}
.account-block-stats {

Wyświetl plik

@ -1,7 +1,7 @@
.avatar {
display: inline-block;
line-height: 0;
aspect-ratio: 1/1;
aspect-ratio: 1 / 1;
border-radius: 50%;
overflow: hidden;
background-color: var(--bg-faded-color);

Wyświetl plik

@ -417,9 +417,11 @@
width: 80px;
height: 80px;
/* checkerboard background */
background-image:
linear-gradient(45deg, var(--img-bg-color) 25%, transparent 25%),
linear-gradient(-45deg, var(--img-bg-color) 25%, transparent 25%),
background-image: linear-gradient(
45deg,
var(--img-bg-color) 25%,
transparent 25%
), linear-gradient(-45deg, var(--img-bg-color) 25%, transparent 25%),
linear-gradient(45deg, transparent 75%, var(--img-bg-color) 75%),
linear-gradient(-45deg, transparent 75%, var(--img-bg-color) 75%);
background-size: 10px 10px;
@ -685,9 +687,11 @@
overflow: hidden;
box-shadow: 0 2px 16px var(--img-bg-color);
/* checkerboard background */
background-image:
linear-gradient(45deg, var(--img-bg-color) 25%, transparent 25%),
linear-gradient(-45deg, var(--img-bg-color) 25%, transparent 25%),
background-image: linear-gradient(
45deg,
var(--img-bg-color) 25%,
transparent 25%
), linear-gradient(-45deg, var(--img-bg-color) 25%, transparent 25%),
linear-gradient(45deg, transparent 75%, var(--img-bg-color) 75%),
linear-gradient(-45deg, transparent 75%, var(--img-bg-color) 75%);
background-size: 20px 20px;

Wyświetl plik

@ -1621,8 +1621,10 @@ function Compose({
<label
class={`toolbar-button ${
language !== prevLanguage.current ||
(autoDetectedLanguages?.length &&
!autoDetectedLanguages.includes(language))
(
autoDetectedLanguages?.length &&
!autoDetectedLanguages.includes(language)
)
? 'highlight'
: ''
}`}

Wyświetl plik

@ -24,18 +24,17 @@
line-height: 1;
border: 1px solid var(--outline-color);
background-color: var(--bg-faded-color);
background-image: linear-gradient(
to top,
var(--bg-blur-color),
transparent
);
background-image: linear-gradient(to top, var(--bg-blur-color), transparent);
text-shadow: 0 1px var(--bg-color);
box-shadow: 0 1px var(--drop-shadow-color),
0 1px 1px var(--drop-shadow-color), 0 1px 8px var(--drop-shadow-color),
box-shadow:
0 1px var(--drop-shadow-color),
0 1px 1px var(--drop-shadow-color),
0 1px 8px var(--drop-shadow-color),
inset 0 1px var(--bg-blur-color);
&:active {
box-shadow: 0 1px 4px var(--drop-shadow-color),
box-shadow:
0 1px 4px var(--drop-shadow-color),
inset 0 1px var(--bg-blur-color);
transform: translateY(1px);
filter: brightness(0.95);

Wyświetl plik

@ -86,7 +86,8 @@
&:not(:active):is(:hover, :focus-visible) {
border-color: var(--accent-color, var(--link-light-color));
box-shadow: 0 4px 8px var(--drop-shadow-color),
box-shadow:
0 4px 8px var(--drop-shadow-color),
0 8px 16px var(--drop-shadow-color);
transform-origin: center bottom;
transform: scale(1.02);

Wyświetl plik

@ -79,7 +79,8 @@
--drop-shadow: var(--drop-shadow-color);
position: relative;
z-index: 1;
box-shadow: 0 8px 16px -4px var(--drop-shadow),
box-shadow:
0 8px 16px -4px var(--drop-shadow),
0 4px 8px var(--drop-shadow);
@media (prefers-color-scheme: dark) {

Wyświetl plik

@ -40,14 +40,14 @@
var(--compose-button-dimension-margin),
env(safe-area-inset-bottom)
);
--origin-end: calc(
100% - var(--compose-button-dimension-half) - var(--end)
);
--origin-end: calc(100% - var(--compose-button-dimension-half) - var(--end));
:dir(rtl) & {
--origin-end: calc(var(--compose-button-dimension-half) + var(--end));
}
--origin-bottom: calc(
100% - var(--compose-button-dimension-half) - var(--bottom)
100% -
var(--compose-button-dimension-half) -
var(--bottom)
);
transform-origin: var(--origin-end) var(--origin-bottom);
}
@ -67,8 +67,9 @@
border: 2px solid red;
--bottom: calc(
var(--compose-button-dimension-margin) + env(safe-area-inset-bottom) +
52px
var(--compose-button-dimension-margin) +
env(safe-area-inset-bottom) +
52px
);
}
}

Wyświetl plik

@ -38,10 +38,16 @@
}
@keyframes phanpying {
0% {
background-position: 0 0, 0 0, 3em 85%;
background-position:
0 0,
0 0,
3em 85%;
}
100% {
background-position: 0 0, 0 0, 2em 90%;
background-position:
0 0,
0 0,
2em 90%;
}
}
.nav-menu section:last-child {
@ -54,11 +60,13 @@
to bottom var(--backward),
var(--bg-blur-color),
transparent
),
url(../assets/phanpy-bg.svg);
), url(../assets/phanpy-bg.svg);
background-repeat: no-repeat;
/* background-size: auto, auto, 200%; */
background-position: 0 0, 0 0, 2em 90%;
background-position:
0 0,
0 0,
2em 90%;
background-blend-mode: normal, normal, overlay;
box-shadow: inset 0 0 1px var(--bg-color);
position: sticky;

Wyświetl plik

@ -17,7 +17,7 @@ import Status from './status';
// NOTE: `dislike` hidden for now, it's actually not used for reporting
// Mastodon shows another screen for unfollowing, muting or blocking instead of reporting
const CATEGORIES = [, /*'dislike'*/ 'spam', 'legal', 'violation', 'other'];
const CATEGORIES = [/*'dislike'*/ , 'spam', 'legal', 'violation', 'other'];
// `violation` will be set if there are `rule_ids[]`
const CATEGORIES_INFO = {

Wyświetl plik

@ -33,7 +33,8 @@
border-radius: 999px;
background-color: var(--bg-faded-color);
border: 2px solid var(--outline-color);
box-shadow: 0 2px 16px var(--drop-shadow-color),
box-shadow:
0 2px 16px var(--drop-shadow-color),
0 32px 64px var(--drop-shadow-color);
}
#search-command-container input:focus {

Wyświetl plik

@ -89,7 +89,8 @@
transition: opacity 0.2s ease-out;
}
#shortcuts-settings-container .shortcuts-view-mode label.checked {
box-shadow: inset 0 0 0 3px var(--link-color),
box-shadow:
inset 0 0 0 3px var(--link-color),
inset 0 0 32px var(--link-faded-color);
}
#shortcuts-settings-container

Wyświetl plik

@ -62,7 +62,8 @@ body.exp-tab-bar-v2 {
--tmp-inset-sides: max(var(--sai-left), var(--sai-right), 16px);
--tmp-inset-bottom: max(16px, var(--sai-bottom));
--tmp-inset-new: calc(
(var(--tmp-inset-sides) + var(--tmp-inset-bottom)) / 2.4
(var(--tmp-inset-sides) + var(--tmp-inset-bottom)) /
2.4
);
--inset-new: var(--tmp-inset-new);
}
@ -95,8 +96,11 @@ body.exp-tab-bar-v2 {
inset-inline-start: var(--inset-inline-start);
inset-block-end: max(16px, var(--inset-new));
max-width: calc(
100vw - var(--inset-inline-start) - var(--inset-inline-end) -
var(--compose-button-width) - 8px
100vw -
var(--inset-inline-start) -
var(--inset-inline-end) -
var(--compose-button-width) -
8px
);
border-radius: 999px;
box-shadow:
@ -116,9 +120,7 @@ body.exp-tab-bar-v2 {
body.exp-tab-bar-v2 {
#filters-page ~ #shortcuts .tab-bar:not([hidden]),
#lists-page ~ #shortcuts .tab-bar:not([hidden]) {
max-width: calc(
100vw - var(--inset-inline-start) - var(--inset-inline-end)
);
max-width: calc(100vw - var(--inset-inline-start) - var(--inset-inline-end));
}
}
#shortcuts .tab-bar ul {

Wyświetl plik

@ -163,7 +163,7 @@
color: var(--text-color);
}
.status-card-link:not(
.truncated .status-card-link, /* parent status already truncated */
.truncated .status-card-link /* parent status already truncated */,
.status-card-link .status-card-link /* nested status cards */
):has(.truncated) {
display: block;
@ -421,7 +421,10 @@
inset-inline-start: var(--line-start);
width: var(--line-width);
height: calc(
100% - var(--top-padding) - var(--avatar-size) + (var(--top-padding) / 2)
100% -
var(--top-padding) -
var(--avatar-size) +
(var(--top-padding) / 2)
);
background-color: var(--comment-line-color);
z-index: 0;
@ -1404,8 +1407,7 @@ body:has(#modal-container .carousel) .status .media img:hover {
width: 100%;
height: 100%;
min-height: var(--min-dimension);
background-image:
radial-gradient(
background-image: radial-gradient(
circle at center center,
transparent,
var(--bg-faded-color)

Wyświetl plik

@ -22,9 +22,8 @@
--main-width: 40em;
text-size-adjust: none;
--hairline-width: 1px;
--monospace-font:
ui-monospace, 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, Courier,
monospace;
--monospace-font: ui-monospace, 'SFMono-Regular', Consolas, 'Liberation Mono',
Menlo, Courier, monospace;
--blue-color: royalblue;
--purple-color: blueviolet;

118
src/locales/en.po wygenerowano
Wyświetl plik

@ -108,7 +108,7 @@ msgstr ""
#: src/components/account-info.jsx:462
#: src/components/account-info.jsx:1236
#: src/components/compose.jsx:2786
#: src/components/compose.jsx:2788
#: src/components/media-alt-modal.jsx:55
#: src/components/media-modal.jsx:363
#: src/components/status.jsx:1836
@ -450,10 +450,10 @@ msgstr ""
#: src/components/account-info.jsx:2295
#: src/components/account-sheet.jsx:38
#: src/components/compose.jsx:891
#: src/components/compose.jsx:2742
#: src/components/compose.jsx:3222
#: src/components/compose.jsx:3431
#: src/components/compose.jsx:3661
#: src/components/compose.jsx:2744
#: src/components/compose.jsx:3224
#: src/components/compose.jsx:3433
#: src/components/compose.jsx:3663
#: src/components/drafts.jsx:59
#: src/components/embed-modal.jsx:13
#: src/components/generic-accounts.jsx:151
@ -657,8 +657,8 @@ msgstr "{0, plural, one {File {1} is not supported.} other {Files {2} are not su
#: src/components/compose.jsx:664
#: src/components/compose.jsx:682
#: src/components/compose.jsx:1792
#: src/components/compose.jsx:1917
#: src/components/compose.jsx:1794
#: src/components/compose.jsx:1919
msgid "{maxMediaAttachments, plural, one {You can only attach up to 1 file.} other {You can only attach up to # files.}}"
msgstr ""
@ -779,17 +779,17 @@ msgid "Posting on <0/>"
msgstr "Posting on <0/>"
#: src/components/compose.jsx:1447
#: src/components/compose.jsx:3280
#: src/components/compose.jsx:3282
#: src/components/shortcuts-settings.jsx:715
#: src/pages/list.jsx:388
msgid "Add"
msgstr ""
#: src/components/compose.jsx:1673
#: src/components/compose.jsx:1675
msgid "Schedule"
msgstr "Schedule"
#: src/components/compose.jsx:1675
#: src/components/compose.jsx:1677
#: src/components/keyboard-shortcuts-help.jsx:155
#: src/components/status.jsx:1030
#: src/components/status.jsx:1816
@ -798,42 +798,42 @@ msgstr "Schedule"
msgid "Reply"
msgstr ""
#: src/components/compose.jsx:1677
#: src/components/compose.jsx:1679
msgid "Update"
msgstr "Update"
#: src/components/compose.jsx:1678
#: src/components/compose.jsx:1680
msgctxt "Submit button in composer"
msgid "Post"
msgstr "Post"
#: src/components/compose.jsx:1804
#: src/components/compose.jsx:1806
msgid "Downloading GIF…"
msgstr "Downloading GIF…"
#: src/components/compose.jsx:1832
#: src/components/compose.jsx:1834
msgid "Failed to download GIF"
msgstr "Failed to download GIF"
#: src/components/compose.jsx:2047
#: src/components/compose.jsx:2124
#: src/components/compose.jsx:2049
#: src/components/compose.jsx:2126
#: src/components/nav-menu.jsx:244
msgid "More…"
msgstr ""
#: src/components/compose.jsx:2556
#: src/components/compose.jsx:2558
msgid "Uploaded"
msgstr ""
#: src/components/compose.jsx:2569
#: src/components/compose.jsx:2571
msgid "Image description"
msgstr "Image description"
#: src/components/compose.jsx:2570
#: src/components/compose.jsx:2572
msgid "Video description"
msgstr "Video description"
#: src/components/compose.jsx:2571
#: src/components/compose.jsx:2573
msgid "Audio description"
msgstr "Audio description"
@ -841,8 +841,8 @@ msgstr "Audio description"
#. placeholder {0}: prettyBytes( videoSize, )
#. placeholder {1}: prettyBytes(imageSizeLimit)
#. placeholder {1}: prettyBytes(videoSizeLimit)
#: src/components/compose.jsx:2606
#: src/components/compose.jsx:2626
#: src/components/compose.jsx:2608
#: src/components/compose.jsx:2628
msgid "File size too large. Uploading might encounter issues. Try reduce the file size from {0} to {1} or lower."
msgstr "File size too large. Uploading might encounter issues. Try reduce the file size from {0} to {1} or lower."
@ -850,150 +850,150 @@ msgstr "File size too large. Uploading might encounter issues. Try reduce the fi
#. placeholder {1}: i18n.number(height)
#. placeholder {2}: i18n.number(newWidth)
#. placeholder {3}: i18n.number( newHeight, )
#: src/components/compose.jsx:2618
#: src/components/compose.jsx:2638
#: src/components/compose.jsx:2620
#: src/components/compose.jsx:2640
msgid "Dimension too large. Uploading might encounter issues. Try reduce dimension from {0}×{1}px to {2}×{3}px."
msgstr "Dimension too large. Uploading might encounter issues. Try reduce dimension from {0}×{1}px to {2}×{3}px."
#: src/components/compose.jsx:2646
#: src/components/compose.jsx:2648
msgid "Frame rate too high. Uploading might encounter issues."
msgstr "Frame rate too high. Uploading might encounter issues."
#: src/components/compose.jsx:2706
#: src/components/compose.jsx:2956
#: src/components/compose.jsx:2708
#: src/components/compose.jsx:2958
#: src/components/shortcuts-settings.jsx:726
#: src/pages/catchup.jsx:1081
#: src/pages/filters.jsx:413
msgid "Remove"
msgstr ""
#: src/components/compose.jsx:2723
#: src/components/compose.jsx:2725
#: src/compose.jsx:84
msgid "Error"
msgstr ""
#: src/components/compose.jsx:2748
#: src/components/compose.jsx:2750
msgid "Edit image description"
msgstr "Edit image description"
#: src/components/compose.jsx:2749
#: src/components/compose.jsx:2751
msgid "Edit video description"
msgstr "Edit video description"
#: src/components/compose.jsx:2750
#: src/components/compose.jsx:2752
msgid "Edit audio description"
msgstr "Edit audio description"
#: src/components/compose.jsx:2795
#: src/components/compose.jsx:2844
#: src/components/compose.jsx:2797
#: src/components/compose.jsx:2846
msgid "Generating description. Please wait…"
msgstr "Generating description. Please wait…"
#. placeholder {0}: e.message
#: src/components/compose.jsx:2815
#: src/components/compose.jsx:2817
msgid "Failed to generate description: {0}"
msgstr "Failed to generate description: {0}"
#: src/components/compose.jsx:2816
#: src/components/compose.jsx:2818
msgid "Failed to generate description"
msgstr "Failed to generate description"
#: src/components/compose.jsx:2828
#: src/components/compose.jsx:2834
#: src/components/compose.jsx:2880
#: src/components/compose.jsx:2830
#: src/components/compose.jsx:2836
#: src/components/compose.jsx:2882
msgid "Generate description…"
msgstr ""
#. placeholder {0}: e?.message ? `: ${e.message}` : ''
#: src/components/compose.jsx:2867
#: src/components/compose.jsx:2869
msgid "Failed to generate description{0}"
msgstr "Failed to generate description{0}"
#. placeholder {0}: localeCode2Text(lang)
#: src/components/compose.jsx:2882
#: src/components/compose.jsx:2884
msgid "({0}) <0>— experimental</0>"
msgstr ""
#: src/components/compose.jsx:2901
#: src/components/compose.jsx:2903
msgid "Done"
msgstr ""
#. placeholder {0}: i + 1
#: src/components/compose.jsx:2937
#: src/components/compose.jsx:2939
msgid "Choice {0}"
msgstr "Choice {0}"
#: src/components/compose.jsx:2984
#: src/components/compose.jsx:2986
msgid "Multiple choices"
msgstr ""
#: src/components/compose.jsx:2987
#: src/components/compose.jsx:2989
msgid "Duration"
msgstr ""
#: src/components/compose.jsx:3018
#: src/components/compose.jsx:3020
msgid "Remove poll"
msgstr ""
#: src/components/compose.jsx:3239
#: src/components/compose.jsx:3241
msgid "Search accounts"
msgstr "Search accounts"
#: src/components/compose.jsx:3293
#: src/components/compose.jsx:3295
#: src/components/generic-accounts.jsx:236
msgid "Error loading accounts"
msgstr ""
#: src/components/compose.jsx:3437
#: src/components/compose.jsx:3439
msgid "Custom emojis"
msgstr ""
#: src/components/compose.jsx:3457
#: src/components/compose.jsx:3459
msgid "Search emoji"
msgstr "Search emoji"
#: src/components/compose.jsx:3488
#: src/components/compose.jsx:3490
msgid "Error loading custom emojis"
msgstr ""
#: src/components/compose.jsx:3499
#: src/components/compose.jsx:3501
msgid "Recently used"
msgstr "Recently used"
#: src/components/compose.jsx:3500
#: src/components/compose.jsx:3502
msgid "Others"
msgstr "Others"
#. placeholder {0}: i18n.number(emojis.length - max)
#: src/components/compose.jsx:3538
#: src/components/compose.jsx:3540
msgid "{0} more…"
msgstr ""
#: src/components/compose.jsx:3676
#: src/components/compose.jsx:3678
msgid "Search GIFs"
msgstr "Search GIFs"
#: src/components/compose.jsx:3691
#: src/components/compose.jsx:3693
msgid "Powered by GIPHY"
msgstr "Powered by GIPHY"
#: src/components/compose.jsx:3699
#: src/components/compose.jsx:3701
msgid "Type to search GIFs"
msgstr ""
#: src/components/compose.jsx:3797
#: src/components/compose.jsx:3799
#: src/components/media-modal.jsx:469
#: src/components/timeline.jsx:927
msgid "Previous"
msgstr ""
#: src/components/compose.jsx:3815
#: src/components/compose.jsx:3817
#: src/components/media-modal.jsx:488
#: src/components/timeline.jsx:944
msgid "Next"
msgstr ""
#: src/components/compose.jsx:3832
#: src/components/compose.jsx:3834
msgid "Error loading GIFs"
msgstr ""

Wyświetl plik

@ -664,7 +664,9 @@ function MonthPicker(props) {
<option
value={
// Month is 1-indexed
(i + 1).toString().padStart(2, '0')
(i + 1)
.toString()
.padStart(2, '0')
}
key={i}
>

Wyświetl plik

@ -36,7 +36,9 @@
opacity: 1;
}
#accounts-container section > ul > li .current.is-current + .avatar {
box-shadow: 0 0 0 1.5px var(--green-color), 0 0 8px var(--green-color);
box-shadow:
0 0 0 1.5px var(--green-color),
0 0 8px var(--green-color);
}
#accounts-container section > ul > li .avatar + .name-text {
vertical-align: middle;

Wyświetl plik

@ -45,8 +45,7 @@
transform: translateY(-10vh);
color: var(--text-color);
background-color: var(--bg-color);
background-image:
radial-gradient(
background-image: radial-gradient(
farthest-corner at 25% 0,
transparent 80%,
var(--bg-faded-color) 95%,

Wyświetl plik

@ -163,8 +163,11 @@
color: var(--text-color);
background-color: var(--bg-faded-color);
border: 1px dashed var(--link-color);
box-shadow: 0 0 0 1px var(--bg-color), 0 -5px 10px var(--bg-color),
0 -5px 15px var(--bg-color), 0 -5px 20px var(--bg-color);
box-shadow:
0 0 0 1px var(--bg-color),
0 -5px 10px var(--bg-color),
0 -5px 15px var(--bg-color),
0 -5px 20px var(--bg-color);
padding: 0.5em 0.75em;
border-radius: 10em;
font-size: 90%;

Wyświetl plik

@ -35,9 +35,10 @@
padding: 16px;
background-color: var(--bg-color);
/* checkered background */
background-image:
linear-gradient(var(--bg-faded-color) 2px, transparent 2px),
linear-gradient(90deg, var(--bg-faded-color) 2px, transparent 2px),
background-image: linear-gradient(
var(--bg-faded-color) 2px,
transparent 2px
), linear-gradient(90deg, var(--bg-faded-color) 2px, transparent 2px),
linear-gradient(var(--bg-faded-color) 1px, transparent 1px),
linear-gradient(90deg, var(--bg-faded-color) 1px, transparent 1px);
background-size:

Wyświetl plik

@ -3,10 +3,10 @@ import './sandbox.css';
import { useEffect, useState } from 'preact/hooks';
import { uid } from 'uid/single';
import testGIFURL from '../assets/sandbox/big-buck-bunny-muted.webm';
import testPreviewURL from '../assets/sandbox/big-buck-bunny-preview.png';
import testAudioURL from '../assets/sandbox/big-buck-bunny.mp3';
import testVideoURL from '../assets/sandbox/big-buck-bunny.webm';
import testGIFURL from '../assets/sandbox/big-buck-bunny-muted.webm';
import testPreviewURL from '../assets/sandbox/big-buck-bunny-preview.png';
import Status from '../components/status';
import { getPreferences } from '../utils/api';

Wyświetl plik

@ -4,8 +4,7 @@
circle at center,
var(--bg-color),
transparent 16em
),
radial-gradient(circle at center, var(--bg-color), transparent 8em);
), radial-gradient(circle at center, var(--bg-color), transparent 8em);
background-repeat: no-repeat;
background-attachment: fixed;
cursor: default;

Wyświetl plik

@ -7,8 +7,8 @@ import groupedNotificationsUrl from '../assets/features/grouped-notifications.jp
import multiColumnUrl from '../assets/features/multi-column.jpg';
import multiHashtagTimelineUrl from '../assets/features/multi-hashtag-timeline.jpg';
import nestedCommentsThreadUrl from '../assets/features/nested-comments-thread.jpg';
import logoText from '../assets/logo-text.svg';
import logo from '../assets/logo.svg';
import logoText from '../assets/logo-text.svg';
import LangSelector from '../components/lang-selector';
import Link from '../components/link';