@riebeckite/theme-folio 0.0.33 → 0.0.34
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +44 -23
- package/README_ja.md +44 -15
- package/dist/src/index.d.ts +72 -5
- package/dist/src/index.js +67 -9
- package/package.json +2 -2
- package/styles/theme.css +162 -29
package/README.md
CHANGED
|
@@ -2,44 +2,65 @@
|
|
|
2
2
|
|
|
3
3
|
<!-- Generated from docs/docs/themes/folio.md. Edit the canonical documentation in docs/docs/themes and run `pnpm docs:sync`. -->
|
|
4
4
|
|
|
5
|
-
A high-contrast portfolio theme with direct sans-serif typography, an
|
|
6
|
-
asymmetric title rule, and a restrained vermilion accent.
|
|
7
|
-
|
|
8
5
|
[日本語](./README_ja.md)
|
|
9
6
|
|
|
7
|
+
## Overview
|
|
8
|
+
|
|
9
|
+
`@riebeckite/theme-folio` provides the official **Folio** theme. Its theme identity is `folio`. A spacious portfolio-style theme with editorial framing.
|
|
10
|
+
|
|
11
|
+
## Installation
|
|
12
|
+
|
|
13
|
+
```sh
|
|
14
|
+
npm install @riebeckite/theme-folio
|
|
15
|
+
```
|
|
16
|
+
|
|
10
17
|
## Usage
|
|
11
18
|
|
|
12
19
|
```ts
|
|
20
|
+
import { defineConfig } from "@riebeckite/core";
|
|
13
21
|
import { folioTheme } from "@riebeckite/theme-folio";
|
|
14
22
|
|
|
15
23
|
export default defineConfig({
|
|
16
|
-
theme: folioTheme({
|
|
24
|
+
theme: folioTheme({
|
|
25
|
+
colorMode: "system",
|
|
26
|
+
settings: { typography: "system" },
|
|
27
|
+
}),
|
|
17
28
|
});
|
|
18
29
|
```
|
|
19
30
|
|
|
20
|
-
##
|
|
31
|
+
## Common options
|
|
32
|
+
|
|
33
|
+
| Property | Values | Description |
|
|
34
|
+
| --- | --- | --- |
|
|
35
|
+
| `colorMode` | `"light"`, `"dark"`, `"system"` | Chooses the color mode. `"system"` follows the browser preference. |
|
|
36
|
+
| `layout` | `"article"`, `"sidebar"`, `"full-width"` | Chooses the page layout. |
|
|
37
|
+
| `preset` | — | This theme does not define presets. |
|
|
38
|
+
| `settings` | object | Overrides the settings listed below. Unknown keys and invalid values are rejected. |
|
|
39
|
+
| `stylesheets` | string array | Loads site-owned stylesheets after the theme CSS. |
|
|
40
|
+
|
|
41
|
+
Resolution order is schema defaults, then the selected preset, then explicit `settings`.
|
|
42
|
+
|
|
43
|
+
## Theme settings
|
|
21
44
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
45
|
+
| Property | Type | Default and allowed values | Effect |
|
|
46
|
+
| --- | --- | --- | --- |
|
|
47
|
+
| `typography` | select | `"system"` — `system`, `serif`, `sans`, `mono` | Selects the article typeface. |
|
|
48
|
+
| `accentColor` | color | `"#d6422c"` | Rules and interactive accents. |
|
|
49
|
+
| `articleWidth` | slider | `62` — 44–76, step 1 | Maximum article width in rem. |
|
|
50
|
+
| `fontSize` | slider | `1.05` — 0.95–1.25, step 0.05 | Article text size in rem. |
|
|
51
|
+
| `lineHeight` | slider | `1.65` — 1.5–2.1, step 0.05 | Article line height. |
|
|
52
|
+
| `motion` | boolean | `true` | Enables theme motion effects. |
|
|
53
|
+
| `ornament` | boolean | `true` | Show the corner mark in the article header. |
|
|
54
|
+
| `seal` | boolean | `false` | Add a circular folio stamp to the article header. |
|
|
28
55
|
|
|
29
|
-
##
|
|
56
|
+
## Presets
|
|
30
57
|
|
|
31
|
-
|
|
32
|
-
`colorMode`, `typography`, `articleLayout`, `tokens`, and `userCss`. Use
|
|
33
|
-
`tokens` for shared semantic color, type, spacing, and layout overrides.
|
|
58
|
+
This theme does not define presets.
|
|
34
59
|
|
|
35
|
-
##
|
|
60
|
+
## CSS and attributes
|
|
36
61
|
|
|
37
|
-
The theme
|
|
38
|
-
It supports visible focus, responsive typography, reduced motion, and
|
|
39
|
-
horizontally scrollable tables. It ships only CSS and uses system fonts.
|
|
62
|
+
The root receives `data-rb-theme="folio"`, `data-rb-mode` for an explicit light or dark mode, and `data-rb-layout`. Every setting is reflected as `data-rb-setting-<name>`; color, number, and slider settings are also available as safe `--rb-setting-<name>` custom properties.
|
|
40
63
|
|
|
41
|
-
##
|
|
64
|
+
## See also
|
|
42
65
|
|
|
43
|
-
-
|
|
44
|
-
- `FolioThemeOptions`
|
|
45
|
-
- `@riebeckite/theme-folio/style.css`
|
|
66
|
+
[Theme API](https://github.com/Rerurate514/riebeckite/blob/main/docs/docs/reference/theme-api.md) and [Writing a theme](https://github.com/Rerurate514/riebeckite/blob/main/docs/docs/themes/writing-a-theme.md).
|
package/README_ja.md
CHANGED
|
@@ -2,36 +2,65 @@
|
|
|
2
2
|
|
|
3
3
|
<!-- Generated from docs/docs/themes/folio.ja.md. Edit the canonical documentation in docs/docs/themes and run `pnpm docs:sync`. -->
|
|
4
4
|
|
|
5
|
-
直接的なサンセリフ体、非対称のタイトル罫線、抑えた朱色のアクセントで構成する高コントラストなポートフォリオ向けテーマです。
|
|
6
|
-
|
|
7
5
|
[English](./README.md)
|
|
8
6
|
|
|
7
|
+
## 概要
|
|
8
|
+
|
|
9
|
+
`@riebeckite/theme-folio` は公式テーマ **Folio** を提供します。テーマ ID は `folio` です。エディトリアルな枠組みを持つ、余白の広いポートフォリオ風テーマです。
|
|
10
|
+
|
|
11
|
+
## インストール
|
|
12
|
+
|
|
13
|
+
```sh
|
|
14
|
+
npm install @riebeckite/theme-folio
|
|
15
|
+
```
|
|
16
|
+
|
|
9
17
|
## 使い方
|
|
10
18
|
|
|
11
19
|
```ts
|
|
20
|
+
import { defineConfig } from "@riebeckite/core";
|
|
12
21
|
import { folioTheme } from "@riebeckite/theme-folio";
|
|
13
22
|
|
|
14
23
|
export default defineConfig({
|
|
15
|
-
theme: folioTheme({
|
|
24
|
+
theme: folioTheme({
|
|
25
|
+
colorMode: "system",
|
|
26
|
+
settings: { typography: "system" },
|
|
27
|
+
}),
|
|
16
28
|
});
|
|
17
29
|
```
|
|
18
30
|
|
|
19
|
-
##
|
|
31
|
+
## 共通オプション
|
|
32
|
+
|
|
33
|
+
| プロパティ | 値 | 説明 |
|
|
34
|
+
| --- | --- | --- |
|
|
35
|
+
| `colorMode` | `"light"`、`"dark"`、`"system"` | カラーモードを選びます。`"system"` はブラウザの設定に従います。 |
|
|
36
|
+
| `layout` | `"article"`、`"sidebar"`、`"full-width"` | ページレイアウトを選びます。 |
|
|
37
|
+
| `preset` | — | このテーマにはプリセットがありません。 |
|
|
38
|
+
| `settings` | object | 下記の設定を上書きします。不明なキーや不正な値は拒否されます。 |
|
|
39
|
+
| `stylesheets` | string array | テーマ CSS の後にサイト固有のスタイルシートを読み込みます。 |
|
|
40
|
+
|
|
41
|
+
設定スキーマの既定値、選択したプリセット、明示した `settings` の順に適用されます。
|
|
42
|
+
|
|
43
|
+
## テーマ設定
|
|
20
44
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
45
|
+
| プロパティ | 型 | 既定値と選択値 | 効果 |
|
|
46
|
+
| --- | --- | --- | --- |
|
|
47
|
+
| `typography` | select | 既定値 `"system"` — `system`、`serif`、`sans`、`mono` | 本文の書体を選びます。 |
|
|
48
|
+
| `accentColor` | color | 既定値 `"#d6422c"` | 操作要素などのアクセント色を設定します。 |
|
|
49
|
+
| `articleWidth` | slider | 既定値 `62` — 44–76、刻み 1 | 本文の最大幅を rem で設定します。 |
|
|
50
|
+
| `fontSize` | slider | 既定値 `1.05` — 0.95–1.25、刻み 0.05 | 本文の文字サイズを rem で設定します。 |
|
|
51
|
+
| `lineHeight` | slider | 既定値 `1.65` — 1.5–2.1、刻み 0.05 | 本文の行間を設定します。 |
|
|
52
|
+
| `motion` | boolean | 既定値 `true` | テーマの動きを有効にします。 |
|
|
53
|
+
| `ornament` | boolean | 既定値 `true` | 記事ヘッダーの装飾を表示します。 |
|
|
54
|
+
| `seal` | boolean | 既定値 `false` | 記事ヘッダーに円形のフォリオ印を追加します。 |
|
|
24
55
|
|
|
25
|
-
##
|
|
56
|
+
## プリセット
|
|
26
57
|
|
|
27
|
-
|
|
58
|
+
このテーマにはプリセットがありません。
|
|
28
59
|
|
|
29
|
-
##
|
|
60
|
+
## CSS と属性
|
|
30
61
|
|
|
31
|
-
|
|
62
|
+
ルートには `data-rb-theme="folio"`、明示的にライトまたはダークを選んだ場合は `data-rb-mode`、そして `data-rb-layout` が設定されます。すべての設定は `data-rb-setting-<name>` 属性に反映されます。color、number、slider 型の設定は安全な `--rb-setting-<name>` カスタムプロパティとしても利用できます。
|
|
32
63
|
|
|
33
|
-
##
|
|
64
|
+
## 関連情報
|
|
34
65
|
|
|
35
|
-
-
|
|
36
|
-
- `FolioThemeOptions`
|
|
37
|
-
- `@riebeckite/theme-folio/style.css`
|
|
66
|
+
[Theme API](https://github.com/Rerurate514/riebeckite/blob/main/docs/docs/reference/theme-api.md) と [テーマを書く](https://github.com/Rerurate514/riebeckite/blob/main/docs/docs/themes/writing-a-theme.ja.md) を参照してください。
|
package/dist/src/index.d.ts
CHANGED
|
@@ -1,5 +1,72 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
export declare const folioTheme: import("@riebeckite/core").ThemeDefinition<{
|
|
2
|
+
readonly typography: {
|
|
3
|
+
readonly type: "select";
|
|
4
|
+
readonly label: "Typography";
|
|
5
|
+
readonly default: "system";
|
|
6
|
+
readonly options: readonly [{
|
|
7
|
+
readonly value: "system";
|
|
8
|
+
readonly label: "System";
|
|
9
|
+
}, {
|
|
10
|
+
readonly value: "serif";
|
|
11
|
+
readonly label: "Serif";
|
|
12
|
+
}, {
|
|
13
|
+
readonly value: "sans";
|
|
14
|
+
readonly label: "Sans";
|
|
15
|
+
}, {
|
|
16
|
+
readonly value: "mono";
|
|
17
|
+
readonly label: "Mono";
|
|
18
|
+
}];
|
|
19
|
+
};
|
|
20
|
+
readonly accentColor: {
|
|
21
|
+
readonly type: "color";
|
|
22
|
+
readonly label: "Accent color";
|
|
23
|
+
readonly description: "Rules and interactive accents.";
|
|
24
|
+
readonly default: "#d6422c";
|
|
25
|
+
readonly light: "#d6422c";
|
|
26
|
+
readonly dark: "#ff826c";
|
|
27
|
+
};
|
|
28
|
+
readonly articleWidth: {
|
|
29
|
+
readonly type: "slider";
|
|
30
|
+
readonly label: "Article width";
|
|
31
|
+
readonly description: "Maximum article width in rem.";
|
|
32
|
+
readonly default: 62;
|
|
33
|
+
readonly min: 44;
|
|
34
|
+
readonly max: 76;
|
|
35
|
+
readonly step: 1;
|
|
36
|
+
};
|
|
37
|
+
readonly fontSize: {
|
|
38
|
+
readonly type: "slider";
|
|
39
|
+
readonly label: "Font size";
|
|
40
|
+
readonly description: "Article text size in rem.";
|
|
41
|
+
readonly default: 1.05;
|
|
42
|
+
readonly min: 0.95;
|
|
43
|
+
readonly max: 1.25;
|
|
44
|
+
readonly step: 0.05;
|
|
45
|
+
};
|
|
46
|
+
readonly lineHeight: {
|
|
47
|
+
readonly type: "slider";
|
|
48
|
+
readonly label: "Line height";
|
|
49
|
+
readonly description: "Article line height.";
|
|
50
|
+
readonly default: 1.65;
|
|
51
|
+
readonly min: 1.5;
|
|
52
|
+
readonly max: 2.1;
|
|
53
|
+
readonly step: 0.05;
|
|
54
|
+
};
|
|
55
|
+
readonly motion: {
|
|
56
|
+
readonly type: "boolean";
|
|
57
|
+
readonly label: "Motion";
|
|
58
|
+
readonly default: true;
|
|
59
|
+
};
|
|
60
|
+
readonly ornament: {
|
|
61
|
+
readonly type: "boolean";
|
|
62
|
+
readonly label: "Corner ornament";
|
|
63
|
+
readonly description: "Show the corner mark in the article header.";
|
|
64
|
+
readonly default: true;
|
|
65
|
+
};
|
|
66
|
+
readonly seal: {
|
|
67
|
+
readonly type: "boolean";
|
|
68
|
+
readonly label: "Folio seal";
|
|
69
|
+
readonly description: "Add a circular folio stamp to the article header.";
|
|
70
|
+
readonly default: false;
|
|
71
|
+
};
|
|
72
|
+
}>;
|
package/dist/src/index.js
CHANGED
|
@@ -1,13 +1,71 @@
|
|
|
1
1
|
// src/index.ts
|
|
2
|
-
import { defineTheme } from "@riebeckite/core";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
2
|
+
import { defineTheme, defineThemeSettings } from "@riebeckite/core";
|
|
3
|
+
var folioTheme = defineTheme({
|
|
4
|
+
name: "folio",
|
|
5
|
+
styles: [{ moduleSpecifier: "@riebeckite/theme-folio/style.css" }],
|
|
6
|
+
settings: defineThemeSettings({
|
|
7
|
+
typography: {
|
|
8
|
+
type: "select",
|
|
9
|
+
label: "Typography",
|
|
10
|
+
default: "system",
|
|
11
|
+
options: [
|
|
12
|
+
{ value: "system", label: "System" },
|
|
13
|
+
{ value: "serif", label: "Serif" },
|
|
14
|
+
{ value: "sans", label: "Sans" },
|
|
15
|
+
{ value: "mono", label: "Mono" }
|
|
16
|
+
]
|
|
17
|
+
},
|
|
18
|
+
accentColor: {
|
|
19
|
+
type: "color",
|
|
20
|
+
label: "Accent color",
|
|
21
|
+
description: "Rules and interactive accents.",
|
|
22
|
+
default: "#d6422c",
|
|
23
|
+
light: "#d6422c",
|
|
24
|
+
dark: "#ff826c"
|
|
25
|
+
},
|
|
26
|
+
articleWidth: {
|
|
27
|
+
type: "slider",
|
|
28
|
+
label: "Article width",
|
|
29
|
+
description: "Maximum article width in rem.",
|
|
30
|
+
default: 62,
|
|
31
|
+
min: 44,
|
|
32
|
+
max: 76,
|
|
33
|
+
step: 1
|
|
34
|
+
},
|
|
35
|
+
fontSize: {
|
|
36
|
+
type: "slider",
|
|
37
|
+
label: "Font size",
|
|
38
|
+
description: "Article text size in rem.",
|
|
39
|
+
default: 1.05,
|
|
40
|
+
min: 0.95,
|
|
41
|
+
max: 1.25,
|
|
42
|
+
step: 0.05
|
|
43
|
+
},
|
|
44
|
+
lineHeight: {
|
|
45
|
+
type: "slider",
|
|
46
|
+
label: "Line height",
|
|
47
|
+
description: "Article line height.",
|
|
48
|
+
default: 1.65,
|
|
49
|
+
min: 1.5,
|
|
50
|
+
max: 2.1,
|
|
51
|
+
step: 0.05
|
|
52
|
+
},
|
|
53
|
+
motion: { type: "boolean", label: "Motion", default: true },
|
|
54
|
+
ornament: {
|
|
55
|
+
type: "boolean",
|
|
56
|
+
label: "Corner ornament",
|
|
57
|
+
description: "Show the corner mark in the article header.",
|
|
58
|
+
default: true
|
|
59
|
+
},
|
|
60
|
+
seal: {
|
|
61
|
+
type: "boolean",
|
|
62
|
+
label: "Folio seal",
|
|
63
|
+
description: "Add a circular folio stamp to the article header.",
|
|
64
|
+
default: false
|
|
65
|
+
}
|
|
66
|
+
}),
|
|
67
|
+
presets: { reading: { label: "Reading", settings: { typography: "serif" } } }
|
|
68
|
+
});
|
|
11
69
|
export {
|
|
12
70
|
folioTheme
|
|
13
71
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@riebeckite/theme-folio",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.34",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/src/index.js",
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
"./styles/theme.css": "./styles/theme.css"
|
|
17
17
|
},
|
|
18
18
|
"dependencies": {
|
|
19
|
-
"@riebeckite/core": "0.0.
|
|
19
|
+
"@riebeckite/core": "0.0.34"
|
|
20
20
|
},
|
|
21
21
|
"publishConfig": {
|
|
22
22
|
"access": "public"
|
package/styles/theme.css
CHANGED
|
@@ -12,14 +12,14 @@
|
|
|
12
12
|
}
|
|
13
13
|
|
|
14
14
|
@layer base {
|
|
15
|
-
:is(:root, .rb-theme-root)[data-theme
|
|
15
|
+
:is(:root, .rb-theme-root)[data-rb-theme="folio"] {
|
|
16
16
|
color-scheme: light;
|
|
17
17
|
--rb-color-paper: #f1f0ec;
|
|
18
18
|
--rb-color-surface: #ffffff;
|
|
19
19
|
--rb-color-surface-hover: #e4e2dc;
|
|
20
20
|
--rb-color-ink: #161616;
|
|
21
21
|
--rb-color-muted: #65635f;
|
|
22
|
-
--rb-color-accent: #d6422c;
|
|
22
|
+
--rb-color-accent: var(--rb-setting-accent-color, #d6422c);
|
|
23
23
|
--rb-color-link: #bd301e;
|
|
24
24
|
--rb-color-focus: #d6422c;
|
|
25
25
|
--rb-color-selected: #ffd1c9;
|
|
@@ -40,21 +40,21 @@
|
|
|
40
40
|
--rb-font-mono:
|
|
41
41
|
"SFMono-Regular", Consolas, "Noto Sans Mono CJK JP", monospace;
|
|
42
42
|
--rb-layout-page-max: 100rem;
|
|
43
|
-
--rb-layout-article-max:
|
|
43
|
+
--rb-layout-article-max: calc(var(--rb-setting-article-width, 62) * 1rem);
|
|
44
44
|
--rb-layout-sidebar: 15rem;
|
|
45
45
|
--rb-layout-gap: 2.5rem;
|
|
46
46
|
--rb-radius-sm: 0;
|
|
47
47
|
--rb-radius-md: 0;
|
|
48
48
|
}
|
|
49
49
|
|
|
50
|
-
:is(:root, .rb-theme-root)[data-theme
|
|
50
|
+
:is(:root, .rb-theme-root)[data-rb-theme="folio"][data-rb-mode="dark"] {
|
|
51
51
|
color-scheme: dark;
|
|
52
52
|
--rb-color-paper: #171716;
|
|
53
53
|
--rb-color-surface: #222220;
|
|
54
54
|
--rb-color-surface-hover: #30302d;
|
|
55
55
|
--rb-color-ink: #f5f2eb;
|
|
56
56
|
--rb-color-muted: #c0bcb3;
|
|
57
|
-
--rb-color-accent: #ff826c;
|
|
57
|
+
--rb-color-accent: var(--rb-setting-accent-color, #ff826c);
|
|
58
58
|
--rb-color-link: #ffac9c;
|
|
59
59
|
--rb-color-focus: #ffbdaf;
|
|
60
60
|
--rb-color-selected: #71382e;
|
|
@@ -69,14 +69,14 @@
|
|
|
69
69
|
}
|
|
70
70
|
|
|
71
71
|
@media (prefers-color-scheme: dark) {
|
|
72
|
-
:is(:root, .rb-theme-root)[data-theme
|
|
72
|
+
:is(:root, .rb-theme-root)[data-rb-theme="folio"]:not([data-rb-mode]) {
|
|
73
73
|
color-scheme: dark;
|
|
74
74
|
--rb-color-paper: #171716;
|
|
75
75
|
--rb-color-surface: #222220;
|
|
76
76
|
--rb-color-surface-hover: #30302d;
|
|
77
77
|
--rb-color-ink: #f5f2eb;
|
|
78
78
|
--rb-color-muted: #c0bcb3;
|
|
79
|
-
--rb-color-accent: #ff826c;
|
|
79
|
+
--rb-color-accent: var(--rb-setting-accent-color, #ff826c);
|
|
80
80
|
--rb-color-link: #ffac9c;
|
|
81
81
|
--rb-color-focus: #ffbdaf;
|
|
82
82
|
--rb-color-selected: #71382e;
|
|
@@ -91,7 +91,7 @@
|
|
|
91
91
|
}
|
|
92
92
|
}
|
|
93
93
|
|
|
94
|
-
:is(:root, .rb-theme-root)[data-theme
|
|
94
|
+
:is(:root, .rb-theme-root)[data-rb-theme="folio"] {
|
|
95
95
|
background: var(--rb-color-paper);
|
|
96
96
|
color: var(--rb-color-ink);
|
|
97
97
|
font-family: var(--rb-font-body);
|
|
@@ -100,38 +100,82 @@
|
|
|
100
100
|
}
|
|
101
101
|
}
|
|
102
102
|
|
|
103
|
-
:is(:root, .rb-theme-root)[data-theme
|
|
103
|
+
:is(:root, .rb-theme-root)[data-rb-theme="folio"] ::selection {
|
|
104
104
|
background: var(--rb-color-selected);
|
|
105
105
|
color: var(--rb-color-ink);
|
|
106
106
|
}
|
|
107
|
-
:is(:root, .rb-theme-root)[data-theme
|
|
107
|
+
:is(:root, .rb-theme-root)[data-rb-theme="folio"] :focus-visible {
|
|
108
108
|
outline: 3px solid var(--rb-color-focus);
|
|
109
109
|
outline-offset: 3px;
|
|
110
110
|
}
|
|
111
|
-
:is(:root, .rb-theme-root)[data-theme
|
|
112
|
-
font-size: 1.
|
|
113
|
-
line-height: 1.65;
|
|
111
|
+
:is(:root, .rb-theme-root)[data-rb-theme="folio"] .rb-article {
|
|
112
|
+
font-size: calc(var(--rb-setting-font-size, 1.05) * 1rem);
|
|
113
|
+
line-height: var(--rb-setting-line-height, 1.65);
|
|
114
114
|
}
|
|
115
|
-
|
|
115
|
+
|
|
116
|
+
:is(
|
|
117
|
+
:root,
|
|
118
|
+
.rb-theme-root
|
|
119
|
+
)[data-rb-theme="folio"][data-rb-setting-typography="mono"]
|
|
120
|
+
.rb-article {
|
|
121
|
+
font-family: ui-monospace, "SFMono-Regular", Consolas, monospace;
|
|
122
|
+
}
|
|
123
|
+
:is(:root, .rb-theme-root)[data-rb-theme="folio"] {
|
|
124
|
+
--rb-folio-corner: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 72 72' fill='none'%3E%3Cpath d='M2 34V2h32M70 38v32H38' stroke='%23d6422c' stroke-width='4'/%3E%3Cpath d='M2 70 70 2' stroke='%23d6422c' stroke-width='1'/%3E%3C/svg%3E");
|
|
125
|
+
}
|
|
126
|
+
:is(:root, .rb-theme-root)[data-rb-theme="folio"][data-rb-mode="dark"] {
|
|
127
|
+
--rb-folio-corner: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 72 72' fill='none'%3E%3Cpath d='M2 34V2h32M70 38v32H38' stroke='%23ff826c' stroke-width='4'/%3E%3Cpath d='M2 70 70 2' stroke='%23ff826c' stroke-width='1'/%3E%3C/svg%3E");
|
|
128
|
+
}
|
|
129
|
+
@media (prefers-color-scheme: dark) {
|
|
130
|
+
:is(:root, .rb-theme-root)[data-rb-theme="folio"]:not([data-rb-mode]) {
|
|
131
|
+
--rb-folio-corner: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 72 72' fill='none'%3E%3Cpath d='M2 34V2h32M70 38v32H38' stroke='%23ff826c' stroke-width='4'/%3E%3Cpath d='M2 70 70 2' stroke='%23ff826c' stroke-width='1'/%3E%3C/svg%3E");
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
:is(:root, .rb-theme-root)[data-rb-theme="folio"] .rb-article-header {
|
|
116
135
|
border-left: 0.5rem solid var(--rb-color-accent);
|
|
117
136
|
margin-bottom: 3rem;
|
|
118
137
|
padding-left: 1.25rem;
|
|
138
|
+
padding-right: 5rem;
|
|
139
|
+
position: relative;
|
|
140
|
+
}
|
|
141
|
+
:is(:root, .rb-theme-root)[data-rb-theme="folio"] .rb-article-header::after {
|
|
142
|
+
background: var(--rb-folio-corner) center / contain no-repeat;
|
|
143
|
+
content: "";
|
|
144
|
+
height: 4rem;
|
|
145
|
+
position: absolute;
|
|
146
|
+
right: 0;
|
|
147
|
+
top: 0;
|
|
148
|
+
width: 4rem;
|
|
149
|
+
}
|
|
150
|
+
:is(
|
|
151
|
+
:root,
|
|
152
|
+
.rb-theme-root
|
|
153
|
+
)[data-rb-theme="folio"][data-rb-setting-ornament="false"]
|
|
154
|
+
.rb-article-header {
|
|
155
|
+
padding-right: 1.25rem;
|
|
119
156
|
}
|
|
120
|
-
:is(
|
|
157
|
+
:is(
|
|
158
|
+
:root,
|
|
159
|
+
.rb-theme-root
|
|
160
|
+
)[data-rb-theme="folio"][data-rb-setting-ornament="false"]
|
|
161
|
+
.rb-article-header::after {
|
|
162
|
+
display: none;
|
|
163
|
+
}
|
|
164
|
+
:is(:root, .rb-theme-root)[data-rb-theme="folio"] .rb-article-header h1 {
|
|
121
165
|
font-size: clamp(2.4rem, 1.6rem + 3.5vw, 5rem);
|
|
122
166
|
font-weight: 800;
|
|
123
167
|
letter-spacing: -0.055em;
|
|
124
168
|
line-height: 0.95;
|
|
125
169
|
text-wrap: balance;
|
|
126
170
|
}
|
|
127
|
-
:is(:root, .rb-theme-root)[data-theme
|
|
171
|
+
:is(:root, .rb-theme-root)[data-rb-theme="folio"] .rb-article-meta {
|
|
128
172
|
color: var(--rb-color-muted);
|
|
129
173
|
font-size: 0.8rem;
|
|
130
174
|
font-weight: 700;
|
|
131
175
|
letter-spacing: 0.05em;
|
|
132
176
|
text-transform: uppercase;
|
|
133
177
|
}
|
|
134
|
-
:is(:root, .rb-theme-root)[data-theme
|
|
178
|
+
:is(:root, .rb-theme-root)[data-rb-theme="folio"] .rb-article-content h2 {
|
|
135
179
|
border-left: 0.25rem solid var(--rb-color-accent);
|
|
136
180
|
font-size: 1.65rem;
|
|
137
181
|
font-weight: 800;
|
|
@@ -139,18 +183,25 @@
|
|
|
139
183
|
margin-top: 3.5rem;
|
|
140
184
|
padding-left: 0.75rem;
|
|
141
185
|
}
|
|
142
|
-
:is(:root, .rb-theme-root)[data-theme
|
|
186
|
+
:is(:root, .rb-theme-root)[data-rb-theme="folio"] .rb-article-content h3 {
|
|
143
187
|
font-size: 1.2rem;
|
|
144
188
|
font-weight: 800;
|
|
145
189
|
margin-top: 2.4rem;
|
|
146
190
|
}
|
|
147
|
-
:is(:root, .rb-theme-root)[data-theme
|
|
191
|
+
:is(:root, .rb-theme-root)[data-rb-theme="folio"] .rb-article-content a {
|
|
148
192
|
color: var(--rb-color-link);
|
|
149
193
|
font-weight: 650;
|
|
150
194
|
text-decoration-thickness: 2px;
|
|
151
195
|
text-underline-offset: 0.16em;
|
|
196
|
+
transition:
|
|
197
|
+
color 140ms ease,
|
|
198
|
+
text-decoration-thickness 140ms ease;
|
|
199
|
+
}
|
|
200
|
+
:is(:root, .rb-theme-root)[data-rb-theme="folio"] .rb-article-content a:hover {
|
|
201
|
+
color: var(--rb-color-accent);
|
|
202
|
+
text-decoration-thickness: 3px;
|
|
152
203
|
}
|
|
153
|
-
:is(:root, .rb-theme-root)[data-theme
|
|
204
|
+
:is(:root, .rb-theme-root)[data-rb-theme="folio"]
|
|
154
205
|
.rb-article-content
|
|
155
206
|
blockquote {
|
|
156
207
|
border-left: 0.35rem solid var(--rb-color-accent);
|
|
@@ -159,48 +210,130 @@
|
|
|
159
210
|
margin-inline: 0;
|
|
160
211
|
padding-left: 1.2rem;
|
|
161
212
|
}
|
|
162
|
-
:is(:root, .rb-theme-root)[data-theme
|
|
213
|
+
:is(:root, .rb-theme-root)[data-rb-theme="folio"]
|
|
163
214
|
.rb-article-content
|
|
164
215
|
:is(pre, code) {
|
|
165
216
|
font-family: var(--rb-font-mono);
|
|
166
217
|
}
|
|
167
|
-
:is(:root, .rb-theme-root)[data-theme
|
|
218
|
+
:is(:root, .rb-theme-root)[data-rb-theme="folio"] .rb-article-content pre {
|
|
168
219
|
overflow-x: auto;
|
|
169
220
|
}
|
|
170
|
-
:is(:root, .rb-theme-root)[data-theme
|
|
221
|
+
:is(:root, .rb-theme-root)[data-rb-theme="folio"] .rb-article-content table {
|
|
171
222
|
border-collapse: collapse;
|
|
172
223
|
display: block;
|
|
173
224
|
max-width: 100%;
|
|
174
225
|
overflow-x: auto;
|
|
175
226
|
}
|
|
176
|
-
:is(:root, .rb-theme-root)[data-theme
|
|
227
|
+
:is(:root, .rb-theme-root)[data-rb-theme="folio"]
|
|
177
228
|
.rb-article-content
|
|
178
229
|
:is(th, td) {
|
|
179
230
|
border-bottom: 2px solid var(--rb-color-border);
|
|
180
231
|
padding: 0.65rem;
|
|
181
232
|
text-align: left;
|
|
182
233
|
}
|
|
183
|
-
:is(:root, .rb-theme-root)[data-theme
|
|
234
|
+
:is(:root, .rb-theme-root)[data-rb-theme="folio"]
|
|
184
235
|
:is(.rr-media, .rr-lightbox, .rr-recent-posts, .rr-cardlink) {
|
|
185
236
|
border-top: 3px solid var(--rb-color-ink);
|
|
186
237
|
margin-top: 2.5rem;
|
|
187
238
|
padding-top: 1rem;
|
|
188
239
|
}
|
|
189
|
-
:is(:root, .rb-theme-root)[data-theme
|
|
240
|
+
:is(:root, .rb-theme-root)[data-rb-theme="folio"] :is(.rr-media, .rr-lightbox) {
|
|
241
|
+
border-top-color: var(--rb-color-accent);
|
|
242
|
+
}
|
|
243
|
+
:is(:root, .rb-theme-root)[data-rb-theme="folio"] .rr-cardlink {
|
|
244
|
+
transition:
|
|
245
|
+
border-color 140ms ease,
|
|
246
|
+
transform 140ms ease;
|
|
247
|
+
}
|
|
248
|
+
@media (prefers-reduced-motion: no-preference) {
|
|
249
|
+
:is(:root, .rb-theme-root)[data-rb-theme="folio"]:not(
|
|
250
|
+
[data-rb-setting-motion="false"]
|
|
251
|
+
)
|
|
252
|
+
.rb-article-header::after {
|
|
253
|
+
animation: rb-folio-frame-in 420ms ease-out both;
|
|
254
|
+
}
|
|
255
|
+
:is(:root, .rb-theme-root)[data-rb-theme="folio"] .rr-cardlink:hover {
|
|
256
|
+
border-color: var(--rb-color-accent);
|
|
257
|
+
transform: translateX(0.25rem);
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
@keyframes rb-folio-frame-in {
|
|
261
|
+
from {
|
|
262
|
+
opacity: 0;
|
|
263
|
+
transform: translate(0.6rem, -0.6rem);
|
|
264
|
+
}
|
|
265
|
+
to {
|
|
266
|
+
opacity: 1;
|
|
267
|
+
transform: translate(0);
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
:is(:root, .rb-theme-root)[data-rb-theme="folio"]
|
|
190
271
|
:is(.rb-site-header, .rb-site-footer) {
|
|
191
272
|
font-weight: 700;
|
|
192
273
|
}
|
|
193
274
|
@media (max-width: 48rem) {
|
|
194
|
-
:is(:root, .rb-theme-root)[data-theme
|
|
275
|
+
:is(:root, .rb-theme-root)[data-rb-theme="folio"] .rb-article {
|
|
195
276
|
font-size: 1rem;
|
|
196
277
|
}
|
|
197
|
-
:is(:root, .rb-theme-root)[data-theme
|
|
278
|
+
:is(:root, .rb-theme-root)[data-rb-theme="folio"] .rb-article-header {
|
|
198
279
|
border-left-width: 0.3rem;
|
|
280
|
+
padding-right: 3.5rem;
|
|
199
281
|
}
|
|
200
282
|
}
|
|
201
283
|
@media (prefers-reduced-motion: reduce) {
|
|
202
|
-
:is(:root, .rb-theme-root)[data-theme
|
|
284
|
+
:is(:root, .rb-theme-root)[data-rb-theme="folio"] * {
|
|
203
285
|
scroll-behavior: auto;
|
|
204
286
|
transition-duration: 0s;
|
|
205
287
|
}
|
|
206
288
|
}
|
|
289
|
+
|
|
290
|
+
:is(:root, .rb-theme-root)[data-rb-theme="folio"][data-rb-setting-seal="true"]
|
|
291
|
+
.rb-article-header {
|
|
292
|
+
padding-right: 5rem;
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
:is(:root, .rb-theme-root)[data-rb-theme="folio"][data-rb-setting-seal="true"]
|
|
296
|
+
.rb-article-header::before {
|
|
297
|
+
position: absolute;
|
|
298
|
+
top: 1.25rem;
|
|
299
|
+
right: 5.25rem;
|
|
300
|
+
display: grid;
|
|
301
|
+
width: 3.25rem;
|
|
302
|
+
height: 3.25rem;
|
|
303
|
+
border: 1px solid var(--rb-color-accent);
|
|
304
|
+
border-radius: 50%;
|
|
305
|
+
color: var(--rb-color-accent);
|
|
306
|
+
content: "FOLIO";
|
|
307
|
+
font-family: var(--rb-font-heading);
|
|
308
|
+
font-size: 0.5rem;
|
|
309
|
+
font-weight: 700;
|
|
310
|
+
letter-spacing: 0.14em;
|
|
311
|
+
opacity: 0.75;
|
|
312
|
+
place-items: center;
|
|
313
|
+
text-indent: 0.14em;
|
|
314
|
+
transform: rotate(-12deg);
|
|
315
|
+
pointer-events: none;
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
@media (max-width: 48rem) {
|
|
319
|
+
:is(:root, .rb-theme-root)[data-rb-theme="folio"][data-rb-setting-seal="true"]
|
|
320
|
+
.rb-article-header {
|
|
321
|
+
padding-right: 3.5rem;
|
|
322
|
+
}
|
|
323
|
+
|
|
324
|
+
:is(:root, .rb-theme-root)[data-rb-theme="folio"][data-rb-setting-seal="true"]
|
|
325
|
+
.rb-article-header::before {
|
|
326
|
+
top: 1rem;
|
|
327
|
+
right: 3.75rem;
|
|
328
|
+
width: 2.75rem;
|
|
329
|
+
height: 2.75rem;
|
|
330
|
+
font-size: 0.4375rem;
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
|
|
334
|
+
:is(:root, .rb-theme-root)[data-rb-theme="folio"]
|
|
335
|
+
.rb-article-content
|
|
336
|
+
> :is(.rr-callout, .rb-table-scroll, pre, .rr-code)
|
|
337
|
+
+ :is(.rr-callout, .rb-table-scroll, pre, .rr-code) {
|
|
338
|
+
margin-block-start: 2.5rem;
|
|
339
|
+
}
|