├── LICENCE ├── README.md ├── assets ├── checkbox.webp ├── cover-hq.webp ├── progress-status.webp ├── screenshot-light.webp └── screenshot.webp ├── cover.png ├── manifest.json └── theme.css /LICENCE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2023 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 6 | 7 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 8 | 9 | THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 10 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # **Neo Theme** 2 | 3 | **Neo** is a theme designed for [Obsidian](https://obsidian.md/), with the goal of maintaining the simplicity of the default theme while adding more colors and enhancing the user interface. 4 | 5 | ![cover](assets/cover-hq.webp) 6 | 7 | ## Features 8 | 9 | - Dark and light theme support 10 | - Mobile support 11 | - Alternate Tabs 12 | - Headings indicator 13 | - Pointer cursor for clickable elements 14 | - Alternate checkboxes 15 | 16 | ## Screenshots 17 | 18 | ![screenshot](assets/screenshot.webp) 19 | 20 |
21 | Light Theme 22 | 23 | ![screenshot-light](assets/screenshot-light.webp) 24 | 25 |
26 | 27 | ## Supported plugins 28 | 29 | - [Dataview](https://github.com/blacksmithgu/obsidian-dataview) 30 | - [Tasks](https://github.com/obsidian-tasks-group/obsidian-tasks) 31 | - [Kanban](https://github.com/mgmeyers/obsidian-kanban) 32 | - [Style settings](https://github.com/mgmeyers/obsidian-style-settings) 33 | - [Calendar](https://github.com/liamcain/obsidian-calendar-plugin) 34 | - [Hover editor](https://github.com/nothingislost/obsidian-hover-editor) 35 | 36 | ## Alternate checkboxes 37 | 38 | Neo offers a variety of alternate checkbox types to help you highlight different task statuses. 39 | 40 | ![checkboxs](assets/checkbox.webp) 41 | 42 | ```markdown 43 | - [ ] Checkbox 44 | - [x] Complete 45 | - [/] Incomplete 46 | - [-] Canceled 47 | - [>] Forwarded 48 | - [<] Schedule 49 | 50 | - [i] Info 51 | - [I] Idea 52 | - [!] Important 53 | - [?] Question 54 | - [p] Pros 55 | - [c] Cons 56 | 57 | - [f] Fire 58 | - [*] Star 59 | - [b] Bookmark 60 | - [u] Trend Up 61 | - [d] Trend Down 62 | - [w] Win 63 | 64 | - [k] Key 65 | - ["] Quote 66 | - [S] Money 67 | - [l] Location 68 | - [n] New 69 | 70 | - [0] Progress 0 71 | - [1] Progress 1 72 | - [2] Progress 2 73 | - [3] Progress 3 74 | - [4] Progress 4 75 | ``` 76 | 77 |
78 | Task plugin statuses for progress checkboxes 79 | 80 | ![checkbox progress statuses](assets/progress-status.webp) 81 | 82 |
83 | 84 | ## Helper Classes 85 | 86 | CSS helper classes can be added to individual files using the `cssclasses` [frontmatter](https://help.obsidian.md/Editing+and+formatting/Properties) key. These classes can be combined to create different effects. 87 | 88 | To enable a cards layout, add the following code at the top of your file: 89 | 90 | ```yaml 91 | --- 92 | cssclasses: cards 93 | --- 94 | ``` 95 | 96 | ### Cards (by [kepano](https://github.com/kepano)) 97 | 98 | Using `cards` transforms Dataview tables into cards that can be sorted using the [Sortable plugin](https://github.com/alexandru-dinu/obsidian-sortable). Similarly, you can also transform lists into cards using `list-cards`. Note that `cards` or `list-cards` must be present for the other classes to work. 99 | 100 | | Class | Description | 101 | | :---------------------- | :----------------------------------------------- | 102 | | `cards` (required) | Activate card layout fot Dataview tables | 103 | | `list-cards` (required) | Activate card layout for lists | 104 | | `cards-align-bottom` | Align the last element of a card to the bottom | 105 | | `cards-cover` | Images are resized to fill the defined space | 106 | | `cards-16-9` | Fit images in cards to 16:9 ratio | 107 | | `cards-1-1` | Fit images in cards to 1:1 ratio (square) | 108 | | `cards-2-1` | Fit images in cards to 2:1 ratio | 109 | | `cards-2-3` | Fit images in cards to 2:3 ratio | 110 | | `cards-cols-1` to `8` | Force a specific number of columns (from 1 to 8) | 111 | 112 | ## Banner 113 | 114 | The `banner` class can be used to add a banner to the top of your file, by naming it `banner` like the following. 115 | 116 | ```markdown 117 | ![banner](path/to/image.jpg) 118 | or 119 | ![[image.jpeg|banner]] 120 | ``` 121 | 122 | Note: the image will disapear from it's original position in the file, but you can access it using the arrow keys or by enabling Source mode. it's recommended to place the image at the top of the file for easy access. 123 | 124 | ## Recommended Fonts 125 | 126 | - [Inter](https://fonts.google.com/specimen/Inter) for interface and text fonts. 127 | - [Fira Code](https://fonts.google.com/specimen/Fira+Code) for monospace font. 128 | 129 | ## Disclaimer 130 | 131 | Please note that this theme is designed for my personal use of Obsidian. Therefore, it is not tested for all use cases. 132 | 133 | ## Credit 134 | 135 | - [@kepano](https://github.com/colineckert)'s [Minimal theme](https://github.com/kepano/obsidian-minimal) 136 | - [@colineckert](https://github.com/colineckert)'s [Things theme](https://github.com/colineckert/obsidian-things) 137 | - [@Akifyss](https://github.com/Akifyss)'s [Border theme](https://github.com/Akifyss/obsidian-border) 138 | -------------------------------------------------------------------------------- /assets/checkbox.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x0aa7i/obsidian-neo/f75573fc1f4351b33ac050896890fa7ff2f3aa6a/assets/checkbox.webp -------------------------------------------------------------------------------- /assets/cover-hq.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x0aa7i/obsidian-neo/f75573fc1f4351b33ac050896890fa7ff2f3aa6a/assets/cover-hq.webp -------------------------------------------------------------------------------- /assets/progress-status.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x0aa7i/obsidian-neo/f75573fc1f4351b33ac050896890fa7ff2f3aa6a/assets/progress-status.webp -------------------------------------------------------------------------------- /assets/screenshot-light.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x0aa7i/obsidian-neo/f75573fc1f4351b33ac050896890fa7ff2f3aa6a/assets/screenshot-light.webp -------------------------------------------------------------------------------- /assets/screenshot.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x0aa7i/obsidian-neo/f75573fc1f4351b33ac050896890fa7ff2f3aa6a/assets/screenshot.webp -------------------------------------------------------------------------------- /cover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/x0aa7i/obsidian-neo/f75573fc1f4351b33ac050896890fa7ff2f3aa6a/cover.png -------------------------------------------------------------------------------- /manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Neo", 3 | "version": "0.3.4", 4 | "minAppVersion": "1.1.9", 5 | "author": "ABDO", 6 | "authorUrl": "https://github.com/x0aa7i" 7 | } 8 | -------------------------------------------------------------------------------- /theme.css: -------------------------------------------------------------------------------- 1 | /*────────── 2 | Neo Theme 3 | By @ABDO 4 | ────────── */ 5 | 6 | /* @settings 7 | id: neo-style 8 | name: Neo Theme 9 | settings: 10 | - 11 | id: appearance 12 | title: Appearance 13 | type: heading 14 | level: 2 15 | collapsed: false 16 | - 17 | id: theme-variant 18 | title: Dark Theme variant 19 | description: Variations of dark theme 20 | type: class-select 21 | allowEmpty: false 22 | default: default 23 | options: 24 | - default 25 | - darker 26 | - 27 | id: accent-headings-off 28 | title: White Headings 29 | description: Use white for headings instead of accent color 30 | type: class-toggle 31 | default: false 32 | - 33 | id: accent-affect-bg 34 | title: Accent affect Background 35 | description: Background colors follow Accent color (set in appearance settings) 36 | type: class-toggle 37 | default: false 38 | - 39 | id: neutral-bg 40 | title: Neutral Background colors 41 | description: Remove colors from background 42 | type: class-toggle 43 | default: false 44 | - 45 | id: no-kanban-styles 46 | title: Disable kanban styles 47 | description: Switch to kanban plugin default styles 48 | type: class-toggle 49 | default: false 50 | - 51 | id: no-dv-table-border 52 | title: Hide dataview table borders 53 | description: 54 | type: class-toggle 55 | default: false 56 | - 57 | id: table-auto-capitalization 58 | title: Table headers capitalization 59 | description: Title capitalize table headers 60 | type: class-toggle 61 | default: false 62 | - 63 | id: features 64 | title: Features 65 | type: heading 66 | level: 2 67 | collapsed: false 68 | - 69 | id: neo-tabs-off 70 | title: Obsidian default tabs 71 | description: Restore obsidian default tabs 72 | type: class-toggle 73 | default: false 74 | - 75 | id: heading-indicator-off 76 | title: Disable Heading Indicator 77 | description: Do not show heading level indicator on hover 78 | type: class-toggle 79 | default: false 80 | - 81 | id: active-line 82 | title: Highlight active line 83 | description: Change background color of current active line 84 | type: class-toggle 85 | default: false 86 | - 87 | id: disable-alternative-checkboxes 88 | title: Disable Alternative Checkboxes 89 | description: Enable this if you are using your own implementation via a CSS Snippet. 90 | type: class-toggle 91 | default: false 92 | 93 | */ 94 | 95 | /* * Colors */ 96 | .theme-dark, 97 | .theme-light { 98 | --base-hue: 230; 99 | 100 | --accent-h: 250; 101 | --accent-s: 80%; 102 | --accent-l: 75%; 103 | 104 | --text-normal: var(--base-15); 105 | --text-muted: var(--base-20); 106 | --text-faint: var(--base-35); 107 | --bold-color: var(--base-10); 108 | 109 | --background-primary: var(--base-60); 110 | --background-primary-alt: var(--base-55); 111 | --background-secondary: var(--base-55); 112 | --background-secondary-alt: var(--base-55); 113 | 114 | --code-background: var(--background-secondary); 115 | --code-normal: var(--text-normal); 116 | --code-comment: var(--text-faint); 117 | --code-important: var(--color-red); 118 | --code-value: var(--color-cyan); 119 | --code-tag: var(--color-yellow); 120 | --code-string: var(--color-green); 121 | --code-punctuation: var(--color-pink); 122 | --code-function: var(--color-cyan); 123 | --code-keyword: var(--color-purple); 124 | --code-operator: var(--color-orange); 125 | --code-property: var(--color-blue); 126 | 127 | --inline-title-color: var(--base-05); 128 | --tab-active-color: var(--base-45); 129 | 130 | --prompt-border-width: 1px; 131 | --prompt-border-color: var(--base-50); 132 | 133 | --indentation-guide-color: var(--base-45); 134 | --indentation-guide-color-active: var(--base-35); 135 | 136 | --modal-border-width: 1px; 137 | --modal-border-color: var(--base-45); 138 | 139 | --ribbon-background: var(--background-secondary); 140 | --ribbon-background-collapsed: var(--background-secondary); 141 | 142 | --interactive-accent-hsl: var(--color-accent-hsl); 143 | --interactive-accent: var(--color-accent-1); 144 | --interactive-accent-hover: var(--color-accent-2); 145 | } 146 | 147 | body:not(.accent-headings-off) { 148 | --h1-color: hsl(var(--accent-h), 52%, 72%); 149 | --h2-color: hsl(var(--accent-h), 52%, 68%); 150 | --h3-color: hsl(var(--accent-h), 52%, 64%); 151 | --h4-color: hsl(var(--accent-h), 50%, 60%); 152 | --h5-color: hsl(var(--accent-h), 40%, 52%); 153 | --h6-color: hsl(var(--accent-h), 38%, 46%); 154 | } 155 | 156 | .neutral-bg { 157 | --base-sat: 0%; 158 | } 159 | 160 | .accent-affect-bg { 161 | --base-hue: var(--accent-h); 162 | } 163 | 164 | .theme-dark { 165 | --base-05: hsl(var(--base-hue), var(--base-sat, 2%), 93%); 166 | --base-10: hsl(var(--base-hue), var(--base-sat, 3%), 82%); 167 | --base-15: hsl(var(--base-hue), var(--base-sat, 4%), 75%); 168 | --base-20: hsl(var(--base-hue), var(--base-sat, 5%), 65%); 169 | --base-25: hsl(var(--base-hue), var(--base-sat, 6%), 56%); 170 | --base-30: hsl(var(--base-hue), var(--base-sat, 6%), 46%); 171 | --base-35: hsl(var(--base-hue), var(--base-sat, 7%), 35%); 172 | --base-40: hsl(var(--base-hue), var(--base-sat, 8%), 25%); 173 | --base-45: hsl(var(--base-hue), var(--base-sat, 10%), 19%); 174 | --base-50: hsl(var(--base-hue), var(--base-sat, 11%), 15%); 175 | --base-55: hsl(var(--base-hue), var(--base-sat, 12%), 12%); 176 | --base-60: hsl(var(--base-hue), var(--base-sat, 16%), 9%); 177 | 178 | --color-black: rgb(14 19 25); 179 | --color-white: rgb(230 230 230); 180 | --color-muted: rgb(139 148 158); 181 | --color-cyan: rgb(82 183 213); 182 | --color-blue: rgb(122 162 247); 183 | --color-pink: rgb(255 151 207); 184 | --color-teal: rgb(62 180 191); 185 | --color-green: rgb(34 208 162); 186 | --color-yellow: rgb(230 232 118); 187 | --color-orange: rgb(237 139 79); 188 | --color-red: rgb(219 75 75); 189 | --color-purple: rgb(149, 128, 255); 190 | 191 | --color-black-rgb: 14, 19, 25; 192 | --color-white-rgb: 230, 230, 230; 193 | --color-muted-rgb: 139, 148, 158; 194 | --color-cyan-rgb: 82, 183, 213; 195 | --color-blue-rgb: 122, 162, 247; 196 | --color-pink-rgb: 250, 153, 205; 197 | --color-teal-rgb: 62, 180, 191; 198 | --color-green-rgb: 34, 208, 162; 199 | --color-yellow-rgb: 224, 222, 113; 200 | --color-orange-rgb: 237, 139, 79; 201 | --color-red-rgb: 219, 75, 75; 202 | --color-purple-rgb: 149, 128, 255; 203 | 204 | --text-accent: hsl(var(--accent-h), 85%, 75%); 205 | --text-accent-hover: hsl(var(--accent-h), 90%, 84%); 206 | 207 | --text-highlight-bg: var(--base-40); 208 | --text-selection: var(--base-50); 209 | 210 | --background-modifier-border: var(--base-45); 211 | --background-modifier-form-field: rgba(0, 0, 0, 0.2); 212 | --background-modifier-border-focus: var(--base-35); 213 | --background-modifier-border-hover: var(--base-40); 214 | --background-modifier-hover: hsla(var(--base-hue), 50%, 80%, 0.05); 215 | --background-modifier-cover: rgba(0, 0, 0, 0.6); 216 | 217 | --color-accent-hsl: var(--accent-h), var(--accent-s), 70%; 218 | --color-accent: hsl(var(--color-accent-hsl)); 219 | --color-accent-1: hsl(var(--accent-h), var(--accent-s), 70%); 220 | --color-accent-2: hsl(var(--accent-h), var(--accent-s), 75%); 221 | 222 | --interactive-normal: var(--base-45); 223 | --interactive-hover: var(--base-40); 224 | } 225 | 226 | .theme-dark.darker { 227 | --base-05: hsl(var(--base-hue), var(--base-sat, 16%), 90%); 228 | --base-10: hsl(var(--base-hue), var(--base-sat, 14%), 79%); 229 | --base-15: hsl(var(--base-hue), var(--base-sat, 12%), 70%); 230 | --base-20: hsl(var(--base-hue), var(--base-sat, 12%), 60%); 231 | --base-25: hsl(var(--base-hue), var(--base-sat, 10%), 49%); 232 | --base-30: hsl(var(--base-hue), var(--base-sat, 10%), 37%); 233 | --base-35: hsl(var(--base-hue), var(--base-sat, 12%), 26%); 234 | --base-40: hsl(var(--base-hue), var(--base-sat, 13%), 19%); 235 | --base-45: hsl(var(--base-hue), var(--base-sat, 12%), 15%); 236 | --base-50: hsl(var(--base-hue), var(--base-sat, 10%), 12%); 237 | --base-55: hsl(var(--base-hue), var(--base-sat, 8%), 8%); 238 | --base-60: hsl(var(--base-hue), var(--base-sat, 8%), 5%); 239 | 240 | --text-accent: hsl(var(--accent-h), 75%, 75%); 241 | --text-accent-hover: hsl(var(--accent-h), 75%, 84%); 242 | } 243 | 244 | .theme-light { 245 | --base-05: hsl(var(--base-hue), var(--base-sat, 14%), 8%); 246 | --base-10: hsl(var(--base-hue), var(--base-sat, 12%), 12%); 247 | --base-15: hsl(var(--base-hue), var(--base-sat, 11%), 15%); 248 | --base-20: hsl(var(--base-hue), var(--base-sat, 10%), 19%); 249 | --base-25: hsl(var(--base-hue), var(--base-sat, 10%), 25%); 250 | --base-30: hsl(var(--base-hue), var(--base-sat, 10%), 35%); 251 | --base-35: hsl(var(--base-hue), var(--base-sat, 10%), 62%); 252 | --base-40: hsl(var(--base-hue), var(--base-sat, 15%), 78%); 253 | --base-45: hsl(var(--base-hue), var(--base-sat, 20%), 86%); 254 | --base-50: hsl(var(--base-hue), var(--base-sat, 30%), 92%); 255 | --base-55: hsl(var(--base-hue), var(--base-sat, 25%), 96%); 256 | --base-60: hsl(var(--base-hue), var(--base-sat, 15%), 98%); 257 | 258 | --color-black: rgb(15, 20, 26); 259 | --color-white: rgb(222, 222, 222); 260 | --color-muted: rgb(138, 147, 158); 261 | --color-cyan: rgb(61 155 184); 262 | --color-blue: rgb(26, 159, 255); 263 | --color-blue: rgb(86 128 219); 264 | --color-pink: rgb(212, 73, 147); 265 | --color-teal: rgb(44, 174, 186); 266 | --color-green: rgb(14, 192, 67); 267 | --color-yellow: rgb(229, 199, 0); 268 | --color-orange: rgb(248, 119, 33); 269 | --color-red: rgb(250, 55, 62); 270 | --color-purple: rgb(111, 85, 241); 271 | 272 | --color-black-rgb: 15, 20, 26; 273 | --color-white-rgb: 222, 222, 222; 274 | --color-muted-rgb: 138, 147, 158; 275 | --color-cyan-rgb: 61, 155, 184; 276 | --color-blue-rgb: 86, 128, 219; 277 | --color-pink-rgb: 212, 73, 147; 278 | --color-teal-rgb: 44, 174, 186; 279 | --color-green-rgb: 14, 192, 67; 280 | --color-yellow-rgb: 229, 199, 0; 281 | --color-orange-rgb: 248, 119, 33; 282 | --color-red-rgb: 250, 55, 62; 283 | --color-purple-rgb: 111, 85, 241; 284 | 285 | --inline-title-color: var(--base-05); 286 | 287 | --text-accent: hsl(var(--accent-h), 85%, 65%); 288 | --text-accent-hover: hsl(var(--accent-h), 60%, 45%); 289 | 290 | --text-highlight-bg: var(--base-45); 291 | --text-selection: var(--base-50); 292 | 293 | --background-modifier-border: var(--base-45); 294 | --background-modifier-form-field: rgba(255, 255, 255, 0.5); 295 | --background-modifier-border-focus: var(--base-35); 296 | --background-modifier-border-hover: var(--base-40); 297 | --background-modifier-hover: hsla(var(--base-hue), 40%, 90%, 0.8); 298 | --background-modifier-cover: rgba(0, 0, 0, 0.5); 299 | 300 | --color-accent-hsl: var(--accent-h), var(--accent-s), 75%; 301 | --color-accent: hsl(var(--color-accent-hsl)); 302 | --color-accent-1: hsl(var(--accent-h), var(--accent-s), 75%); 303 | --color-accent-2: hsl(var(--accent-h), var(--accent-s), 70%); 304 | 305 | --interactive-normal: var(--base-55); 306 | --interactive-hover: var(--base-50); 307 | } 308 | 309 | /* * Layout */ 310 | body { 311 | /* Animations */ 312 | --anim-duration-none: 0; 313 | --anim-duration-superfast: 70ms; 314 | --anim-duration-fast: 140ms; 315 | --anim-duration-moderate: 250ms; 316 | --anim-duration-slow: 400ms; 317 | /* Radius */ 318 | --radius-s: 4px; 319 | --radius-m: 6px; 320 | --radius-l: 10px; 321 | --radius-xl: 16px; 322 | } 323 | 324 | .menu { 325 | background-color: var(--base-50); 326 | border-color: var(--base-50); 327 | } 328 | 329 | /* prompt */ 330 | .prompt { 331 | background-color: var(--base-50); 332 | } 333 | 334 | .prompt-instructions { 335 | padding: var(--size-4-3); 336 | border-top: 1px solid var(--base-45); 337 | } 338 | 339 | /* notice */ 340 | .notice-container { 341 | top: var(--header-height); 342 | padding: 10px 16px; 343 | } 344 | .notice-container .notice { 345 | background-color: var(--base-50); 346 | color: var(--text-normal); 347 | margin-bottom: 8px; 348 | } 349 | 350 | .modal { 351 | padding: var(--size-4-8); 352 | padding-bottom: var(--size-4-6); 353 | } 354 | 355 | /* * Cursor */ 356 | body { 357 | --cursor: pointer; 358 | --cursor-link: pointer; 359 | } 360 | 361 | select, 362 | .dropdown, 363 | .view-header-breadcrumb, 364 | .workspace-tab-header, 365 | input[type="checkbox"] { 366 | cursor: var(--cursor); 367 | } 368 | 369 | /* reset cursor for window buttons */ 370 | body .titlebar-button-container { 371 | --cursor: default; 372 | } 373 | 374 | /* windows buttons */ 375 | .titlebar-button-container .titlebar-button:hover { 376 | --background-modifier-error: rgb(212, 32, 38); 377 | color: var(--base-05); 378 | } 379 | 380 | /* new tab image*/ 381 | /* from border theme: https://github.com/Akifyss/obsidian-border */ 382 | .workspace-leaf-content[data-type="empty"] .empty-state::before { 383 | content: ""; 384 | width: 100%; 385 | height: 30%; 386 | background-color: var(--icon-color); 387 | -webkit-mask-size: contain; 388 | -webkit-mask-position: center; 389 | -webkit-mask-repeat: no-repeat; 390 | -webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2280%22%20height%3D%2280%22%20fill%3D%22none%22%20viewBox%3D%220%200%2080%2080%22%3E%3Cpath%20fill%3D%22%23000%22%20fill-opacity%3D%22.1%22%20fill-rule%3D%22evenodd%22%20d%3D%22M41.025%2044.046c-1.565-4.198-2.066-7.455-1.95-10.13.126-2.9.975-5.058%201.89-6.923.243-.495.485-.96.717-1.406.66-1.27%201.243-2.393%201.57-3.657.398-1.537.4-3.279-.519-5.633a3.197%203.197%200%200%200-3.486.523l-9.875%208.884a3.197%203.197%200%200%200-1.023%201.9c-.118.78-.259%201.752-.404%202.757-.25%201.72-.512%203.537-.7%204.67%202.313%201.47%205.437%203.94%207.093%207.98.226.553.424%201.132.589%201.74%202.033-.46%204.085-.765%206.098-.705Zm1.587.128c.957.129%201.901.355%202.827.701%203.307%201.238%206.25%203.964%208.665%208.966l.08-.12a139.935%20139.935%200%200%200%204.196-6.627%201.618%201.618%200%200%200-.122-1.797c-1.03-1.364-3-4.138-4.074-6.706-1.104-2.64-1.269-6.74-1.278-8.736a3.406%203.406%200%200%200-.714-2.097l-7.383-9.38a9.237%209.237%200%200%201-.165%203.912c-.371%201.437-1.062%202.763-1.744%204.075a60.2%2060.2%200%200%200-.644%201.26c-.87%201.771-1.631%203.728-1.745%206.353-.111%202.562.393%205.815%202.101%2010.196Zm4.66%2019.708c2.13.59%204.273-1.12%204.567-3.31.218-1.618.633-3.462%201.408-5.16-2.394-5.402-5.261-8.05-8.312-9.19-2.97-1.112-6.244-.85-9.698-.068.666%203.863.018%208.748-3%2014.906.158.036.32.06.483.072l4.844.367c2.362.182%204.92.956%207.328%201.684.816.246%201.613.488%202.38.7Zm-16.329-3.449c3.777-7.702%203.612-13.101%202.065-16.876-1.404-3.426-3.996-5.637-6.134-7.054-.91%202.125-5.19%2011.535-5.19%2011.535a3.196%203.196%200%200%200%20.622%203.535l8.348%208.597c.091.094.188.182.29.263Z%22%20clip-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E"); 391 | mask-size: contain; 392 | mask-position: center; 393 | mask-repeat: no-repeat; 394 | mask-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2280%22%20height%3D%2280%22%20fill%3D%22none%22%20viewBox%3D%220%200%2080%2080%22%3E%3Cpath%20fill%3D%22%23000%22%20fill-opacity%3D%22.1%22%20fill-rule%3D%22evenodd%22%20d%3D%22M41.025%2044.046c-1.565-4.198-2.066-7.455-1.95-10.13.126-2.9.975-5.058%201.89-6.923.243-.495.485-.96.717-1.406.66-1.27%201.243-2.393%201.57-3.657.398-1.537.4-3.279-.519-5.633a3.197%203.197%200%200%200-3.486.523l-9.875%208.884a3.197%203.197%200%200%200-1.023%201.9c-.118.78-.259%201.752-.404%202.757-.25%201.72-.512%203.537-.7%204.67%202.313%201.47%205.437%203.94%207.093%207.98.226.553.424%201.132.589%201.74%202.033-.46%204.085-.765%206.098-.705Zm1.587.128c.957.129%201.901.355%202.827.701%203.307%201.238%206.25%203.964%208.665%208.966l.08-.12a139.935%20139.935%200%200%200%204.196-6.627%201.618%201.618%200%200%200-.122-1.797c-1.03-1.364-3-4.138-4.074-6.706-1.104-2.64-1.269-6.74-1.278-8.736a3.406%203.406%200%200%200-.714-2.097l-7.383-9.38a9.237%209.237%200%200%201-.165%203.912c-.371%201.437-1.062%202.763-1.744%204.075a60.2%2060.2%200%200%200-.644%201.26c-.87%201.771-1.631%203.728-1.745%206.353-.111%202.562.393%205.815%202.101%2010.196Zm4.66%2019.708c2.13.59%204.273-1.12%204.567-3.31.218-1.618.633-3.462%201.408-5.16-2.394-5.402-5.261-8.05-8.312-9.19-2.97-1.112-6.244-.85-9.698-.068.666%203.863.018%208.748-3%2014.906.158.036.32.06.483.072l4.844.367c2.362.182%204.92.956%207.328%201.684.816.246%201.613.488%202.38.7Zm-16.329-3.449c3.777-7.702%203.612-13.101%202.065-16.876-1.404-3.426-3.996-5.637-6.134-7.054-.91%202.125-5.19%2011.535-5.19%2011.535a3.196%203.196%200%200%200%20.622%203.535l8.348%208.597c.091.094.188.182.29.263Z%22%20clip-rule%3D%22evenodd%22%2F%3E%3C%2Fsvg%3E"); 395 | } 396 | 397 | /** Tabs */ 398 | body { 399 | --tab-divider-color: transparent; 400 | --tab-width: 200px; 401 | --tab-min-width: 92px; 402 | } 403 | 404 | .theme-light { 405 | --tab-active-color: var(--base-60); 406 | --tab-active-shadow: inset 0 0 0 1px var(--background-modifier-border); 407 | } 408 | 409 | .mod-windows, 410 | .mod-linux { 411 | --frame-left-space: 6px; 412 | --frame-right-space: 132px; 413 | } 414 | 415 | body:not(.neo-tabs-off) .workspace-tab-header::after, 416 | body:not(.neo-tabs-off) .workspace-tab-header::before { 417 | display: none; 418 | } 419 | 420 | body:not(.neo-tabs-off) .workspace-tab-header.is-active { 421 | background-color: transparent; 422 | box-shadow: unset; 423 | } 424 | 425 | body:not(.neo-tabs-off) 426 | .mod-root 427 | .workspace-tabs:not(.mod-stacked) 428 | .workspace-tab-header 429 | .workspace-tab-header-inner { 430 | padding: 0 6px 0 14px; 431 | margin: 1px 0; 432 | } 433 | 434 | body:not(.neo-tabs-off) 435 | .workspace-tabs:not(.mod-stacked) 436 | .workspace-tab-header.is-active 437 | .workspace-tab-header-inner { 438 | background-color: var(--tab-active-color); 439 | box-shadow: var(--tab-active-shadow); 440 | } 441 | 442 | .mod-left-split .workspace-tab-header, 443 | .mod-right-split .workspace-tab-header, 444 | .workspace-tab-header-inner { 445 | border-radius: var(--radius-m); 446 | } 447 | 448 | body:not(.neo-tabs-off) .mod-root .workspace-tabs:not(.mod-stacked) .workspace-tab-header, 449 | body:not(.neo-tabs-off) 450 | .mod-root 451 | .workspace-tabs:not(.mod-stacked) 452 | .workspace-tab-header.is-active { 453 | /* padding: 0px 2px 6px; */ 454 | min-width: var(--tab-min-width); 455 | } 456 | 457 | .mod-root .workspace-tab-header-inner { 458 | padding: 0 6px 0; 459 | } 460 | 461 | .mod-left-split .workspace-tab-header-container-inner, 462 | .mod-right-split .workspace-tab-header-container-inner { 463 | padding: 4px; 464 | margin: 0px; 465 | gap: 4px; 466 | } 467 | 468 | body:not(.neo-tabs-off) .mod-root .workspace-tab-header-container-inner { 469 | margin: 0px 5px 0px; 470 | padding: 1px 4px 1px; 471 | } 472 | 473 | /* Changes the resize handles to not overlap the tab area */ 474 | /* from prism theme: https://github.com/damiankorcz/Prism-Theme */ 475 | .workspace-split.mod-vertical > * > .workspace-leaf-resize-handle, 476 | .workspace-split.mod-left-split > .workspace-leaf-resize-handle, 477 | .workspace-split.mod-right-split > .workspace-leaf-resize-handle { 478 | height: calc(var(--divider-vertical-height) - var(--header-height)); 479 | } 480 | 481 | /* * Icons */ 482 | body { 483 | --icon-color: var(--text-muted); 484 | --icon-color-hover: var(--text-muted); 485 | --icon-color-active: var(--text-accent); 486 | --icon-color-focused: var(--text-normal); 487 | 488 | --clickable-icon-radius: 6px; 489 | --ribbon-padding: 8px 0px; 490 | --ribbon-width: 40px; 491 | } 492 | 493 | .workspace-tab-header-inner-icon { 494 | align-items: center; 495 | justify-content: center; 496 | } 497 | 498 | .workspace-tab-header-tab-list, 499 | .workspace-tab-header-new-tab { 500 | padding-top: 4px; 501 | } 502 | 503 | .sidebar-toggle-button { 504 | padding: 4px; 505 | } 506 | 507 | .mod-left-split .workspace-tab-header .workspace-tab-header-inner, 508 | .mod-right-split .workspace-tab-header .workspace-tab-header-inner, 509 | .clickable-icon.nav-action-button, 510 | .clickable-icon.side-dock-ribbon-action, 511 | .sidebar-toggle-button .clickable-icon, 512 | .workspace-tab-header-new-tab .clickable-icon, 513 | .workspace-tab-header-tab-list .clickable-icon { 514 | padding: 6px; 515 | height: 32px; 516 | width: 32px; 517 | } 518 | 519 | /* Pin icon */ 520 | .mod-root .workspace-tab-header.is-active .workspace-tab-header-status-icon.mod-pinned:hover { 521 | color: var(--text-normal); 522 | background-color: transparent; 523 | } 524 | 525 | .is-mobile .clickable-icon.nav-action-button, 526 | .is-mobile .clickable-icon.side-dock-ribbon-action, 527 | .is-mobile .sidebar-toggle-button .clickable-icon { 528 | padding: var(--size-2-2); 529 | } 530 | 531 | body:not(.is-mobile) .mod-left-split .workspace-tab-header-inner-icon .svg-icon, 532 | body:not(.is-mobile) .mod-right-split .workspace-tab-header-inner-icon .svg-icon, 533 | body:not(.is-mobile) .clickable-icon.side-dock-ribbon-action .svg-icon, 534 | body:not(.is-mobile) .clickable-icon.nav-action-button .svg-icon, 535 | body:not(.is-mobile) .sidebar-toggle-button .clickable-icon .svg-icon, 536 | body:not(.is-mobile) .workspace-tab-header-new-tab .clickable-icon .svg-icon, 537 | body:not(.is-mobile) .workspace-tab-header-tab-list .clickable-icon .svg-icon { 538 | /* --icon-l: 20px; */ 539 | --icon-size: var(--icon-l); 540 | } 541 | 542 | .workspace-tab-header-status-icon, 543 | .mod-root .workspace-tab-header-status-icon, 544 | .mod-root .workspace-tab-header-inner-icon { 545 | --icon-size: var(--icon-s); 546 | } 547 | 548 | .titlebar .workspace-tab-header-tab-list, 549 | .titlebar .workspace-tab-header-new-tab, 550 | .mod-root .workspace-tab-header-tab-list, 551 | .mod-root .workspace-tab-header-new-tab { 552 | display: unset; 553 | } 554 | 555 | .side-dock-settings, 556 | .side-dock-actions { 557 | gap: 0; 558 | } 559 | 560 | /* Change Mobile icon colors */ 561 | .workspace-drawer, 562 | body.is-mobile .clickable-icon, 563 | body.is-tablet .clickable-icon { 564 | --interactive-accent: var(--text-muted); 565 | --icon-color: var(--text-muted); 566 | --icon-color-hover: var(--text-normal); 567 | } 568 | 569 | /* * Status bar */ 570 | body { 571 | --status-bar-background: var(--background-secondary); 572 | --status-bar-border-width: 1px 0 0 0px; 573 | --status-bar-radius: 0; 574 | --status-bar-height: 24px; 575 | } 576 | 577 | .status-bar { 578 | padding: 0 16px; 579 | width: 100%; 580 | height: var(--status-bar-height); 581 | flex-direction: row-reverse; 582 | justify-content: flex-start; 583 | flex-wrap: wrap; 584 | overflow: hidden; 585 | } 586 | 587 | .status-bar-item { 588 | flex-shrink: 0; 589 | order: 3; 590 | } 591 | 592 | .status-bar-item.plugin-backlink { 593 | order: 2; 594 | } 595 | 596 | .status-bar-item.plugin-properties { 597 | order: 1; 598 | } 599 | 600 | body:not(.is-mobile) .workspace { 601 | padding-bottom: var(--status-bar-height); 602 | } 603 | 604 | .mod-root .workspace-tab-container { 605 | padding-bottom: 0; 606 | } 607 | 608 | /* mobile toolbar */ 609 | .mobile-toolbar-options-container { 610 | --mobile-toolbar-height: 40px; 611 | } 612 | 613 | .mobile-toolbar-option { 614 | --at-button-height: 40px; 615 | } 616 | 617 | /* Scrollbars */ 618 | /* from border theme: https://github.com/Akifyss/obsidian-border */ 619 | body { 620 | --scrollbar-opacity: 0; 621 | --scrollbar-bg: rgba(var(--mono-rgb-100), 0); 622 | --scrollbar-thumb-bg: rgba(var(--mono-rgb-100), 0.08); 623 | --scrollbar-active-thumb-bg: rgba(var(--mono-rgb-100), 0.15); 624 | } 625 | 626 | .theme-dark { 627 | --mono-rgb-100: 255, 255, 255; 628 | } 629 | .theme-light { 630 | --mono-rgb-100: 0, 0, 0; 631 | } 632 | 633 | body:not(.native-scrollbars) ::-webkit-scrollbar, 634 | body:not(.native-scrollbars) .kanban-plugin__scroll-container::-webkit-scrollbar { 635 | width: 11px; 636 | height: 11px; 637 | } 638 | 639 | body:not(.native-scrollbars) ::-webkit-scrollbar-thumb, 640 | body:not(.native-scrollbars) .kanban-plugin__scroll-container::-webkit-scrollbar-thumb { 641 | border: 3px solid transparent; 642 | } 643 | 644 | .mobile-toolbar-options-container::-webkit-scrollbar { 645 | width: 0 !important; 646 | height: 0 !important; 647 | } 648 | 649 | body:not(.native-scrollbars) ::-webkit-scrollbar-track, 650 | body:not(.native-scrollbars) ::-webkit-scrollbar-track-piece, 651 | body:not(.native-scrollbars):not(.is-mobile) ::-webkit-scrollbar-thumb { 652 | background-color: transparent !important; 653 | } 654 | 655 | body:not(.native-scrollbars):not(.is-mobile) :hover::-webkit-scrollbar-thumb { 656 | background-color: var(--scrollbar-thumb-bg) !important; 657 | } 658 | 659 | body:not(.native-scrollbars):not(.is-mobile) ::-webkit-scrollbar-thumb:hover, 660 | body:not(.native-scrollbars):not(.is-mobile) ::-webkit-scrollbar-thumb:active { 661 | background-color: var(--scrollbar-active-thumb-bg) !important; 662 | } 663 | 664 | body:not(.native-scrollbars) 665 | .workspace-leaf-content:is( 666 | [data-type="surfing-view"], 667 | [data-type="graph"], 668 | [data-type="localgraph"] 669 | ) 670 | ::-webkit-scrollbar, 671 | body:not(.native-scrollbars).scrollbar-hide ::-webkit-scrollbar { 672 | display: none; 673 | } 674 | 675 | /* off scrollbar space occupancy, */ 676 | /* from maple theme: https://github.com/subframe7536/obsidian-theme-maple */ 677 | /* body:not(.is-mobile).scrollbar-space-occupation-off 678 | :is(.mk-file-tree > div > div), */ 679 | body:not(.is-mobile) :is(.mk-file-tree > div > div), 680 | body:not(.is-mobile) 681 | :is( 682 | .vertical-tab-header, 683 | .vertical-tab-content, 684 | .nav-files-container, 685 | .view-content, 686 | .search-result-container, 687 | .git-view-body, 688 | .suggestion-container .suggestion, 689 | .prompt-results, 690 | .community-modal-search-results-wrapper, 691 | .community-modal-info, 692 | .modal:not(.mod-settings, .mod-community-theme, .mod-community-plugin), 693 | .tag-container, 694 | .backlink-pane, 695 | .workspace-leaf-content[data-type="markdown"] .cm-scroller, 696 | .markdown-preview-view:not(.checklist-plugin-main), 697 | .workspace-leaf-content[data-type="calendar"] .view-content, 698 | .janitor-scan-results, 699 | .excalidraw-wrapper :is(.App-mobile-menu, .App-menu .Stack .Island.App-menu__left, .scrollbar), 700 | .excalidraw-contextMenuContainer .popover, 701 | .kanban-plugin__board, 702 | .kanban-plugin__lane-items, 703 | .workspace-leaf-content[data-type="pdf"] .pdf-viewer-container, 704 | .workspace-leaf-content[data-type="pdf"] .pdf-thumbnail-view 705 | ) { 706 | overflow-y: overlay !important; 707 | } 708 | 709 | /* turned off because it does overlap with kanban scrollbars */ 710 | /* body:not(.is-mobile) 711 | .mod-root 712 | .workspace-tabs.mod-stacked 713 | .workspace-tab-container { 714 | overflow-x: overlay !important; 715 | } */ 716 | 717 | /* * Editor */ 718 | /* typography */ 719 | body { 720 | -webkit-font-smoothing: antialiased; 721 | 722 | /* Font families */ 723 | --font-text-theme: Inter, Roboto, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; 724 | --font-editor-theme: Inter, Roboto, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; 725 | --font-monospace-theme: "JetBrains Mono", "FiraCode", Menlo, SFMono-Regular, Consolas, 726 | "Roboto Mono", monospace; 727 | --font-interface-theme: Inter, Roboto, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; 728 | --font-editor: var(--font-editor-override), var(--font-text-override), var(--font-editor-theme); 729 | 730 | --line-height-normal: 1.6; 731 | --line-height-tight: 1.3; 732 | 733 | --h1-size: 1.802rem; 734 | --h2-size: 1.602rem; 735 | --h3-size: 1.424rem; 736 | --h4-size: 1.266rem; 737 | --h5-size: 1.125rem; 738 | --h6-size: 1rem; 739 | 740 | --h1-weight: 700; 741 | --h2-weight: 675; 742 | --h3-weight: 650; 743 | --h4-weight: 650; 744 | --h5-weight: 625; 745 | --h6-weight: 625; 746 | 747 | --inline-title-size: 2rem; 748 | 749 | --link-decoration: none; 750 | --link-decoration-hover: none; 751 | --link-external-decoration: none; 752 | --link-external-decoration-hover: none; 753 | } 754 | 755 | /* Heading level Indicator */ 756 | body:not(.is-mobile):not(.heading-indicator-off) .is-live-preview .collapse-indicator::before { 757 | content: var(--heading-indicator); 758 | color: var(--text-faint); 759 | background-color: var(--background-primary); 760 | font-size: 0.7rem; 761 | position: absolute; 762 | font-weight: 600; 763 | left: -22px; 764 | top: 50%; 765 | transform: translateY(-50%); 766 | } 767 | 768 | body:not(.is-mobile) .is-live-preview .HyperMD-header-1:hover { 769 | --heading-indicator: "H1"; 770 | } 771 | 772 | body:not(.is-mobile) .is-live-preview .HyperMD-header-2:hover { 773 | --heading-indicator: "H2"; 774 | } 775 | 776 | body:not(.is-mobile) .is-live-preview .HyperMD-header-3:hover { 777 | --heading-indicator: "H3"; 778 | } 779 | 780 | body:not(.is-mobile) .is-live-preview .HyperMD-header-4:hover { 781 | --heading-indicator: "H4"; 782 | } 783 | 784 | body:not(.is-mobile) .is-live-preview .HyperMD-header-5:hover { 785 | --heading-indicator: "H5"; 786 | } 787 | 788 | body:not(.is-mobile) .is-live-preview .HyperMD-header-6:hover { 789 | --heading-indicator: "H6"; 790 | } 791 | 792 | /* Make room for heading indicator */ 793 | body:not(.is-mobile):not(.heading-indicator-off) 794 | .view-content 795 | > .markdown-source-view.mod-cm6 796 | > .cm-editor 797 | > .cm-scroller { 798 | padding-left: 56px; 799 | } 800 | 801 | .cm-contentContainer .cm-content .HyperMD-header.HyperMD-header-1.cm-line, 802 | .cm-contentContainer .cm-content .HyperMD-header.HyperMD-header-2.cm-line, 803 | .cm-contentContainer .cm-content .HyperMD-header.HyperMD-header-3.cm-line, 804 | .cm-contentContainer .cm-content .HyperMD-header.HyperMD-header-4.cm-line, 805 | .cm-contentContainer .cm-content .HyperMD-header.HyperMD-header-5.cm-line, 806 | .cm-contentContainer .cm-content .HyperMD-header.HyperMD-header-6.cm-line, 807 | .markdown-rendered h1, 808 | .markdown-rendered h2, 809 | .markdown-rendered h3, 810 | .markdown-rendered h4, 811 | .markdown-rendered h5, 812 | .markdown-rendered h6 { 813 | padding-bottom: 4px; 814 | } 815 | 816 | /* Highlight selected line */ 817 | /* from border theme: https://github.com/Akifyss/obsidian-border */ 818 | body:is(.active-line) 819 | .markdown-source-view 820 | .cm-scroller 821 | .cm-line.cm-active:not(:has(.mk-note-footer, .mk-floweditor-container)) { 822 | background-color: hsla(var(--accent-h), 6%, 25%, 0.2); 823 | border-radius: var(--radius-s); 824 | } 825 | 826 | /* Table */ 827 | body { 828 | --table-header-background: var(--background-secondary); 829 | --table-header-background-hover: var(--background-secondary); 830 | --table-border-width: 1px; 831 | --table-border-color: var(--background-modifier-border); 832 | } 833 | 834 | .markdown-source-view.mod-cm6, 835 | .markdown-preview-view { 836 | table { 837 | border-collapse: collapse; 838 | } 839 | } 840 | 841 | .markdown-preview-view th, 842 | .markdown-rendered thead > tr > th, 843 | .table-view-table > thead > tr > th, 844 | .markdown-source-view.mod-cm6 .dataview.table-view-table thead.table-view-thead tr th { 845 | font-size: 1rem; 846 | font-size: var(--font-small); 847 | font-weight: 600; 848 | padding: 10px 16px; 849 | } 850 | 851 | body:is(.table-auto-capitalization) tr th { 852 | text-transform: capitalize; 853 | } 854 | 855 | .markdown-preview-view td, 856 | .markdown-rendered tbody > tr > td { 857 | padding: 6px 16px; 858 | } 859 | 860 | .markdown-rendered .table-view-table tbody { 861 | font-size: var(--font-small); 862 | } 863 | 864 | .markdown-rendered .table-view-table > tbody > tr:hover { 865 | background-color: var(--table-header-background-hover) !important; 866 | } 867 | 868 | .markdown-rendered.mod-cm6:not(.cards) .table-view-table th, 869 | .markdown-rendered:not(.cards) .table-view-table th { 870 | border-bottom: var(--table-border-width) solid var(--table-border-color); 871 | } 872 | 873 | body:not(.no-dv-table-border) 874 | :is(.markdown-preview-view, .markdown-source-view):not(.cards) 875 | .table-view-table, 876 | body:not(.no-dv-table-border) 877 | :is(.markdown-preview-view, .markdown-source-view):not(.cards) 878 | .table-view-table 879 | th, 880 | body:not(.no-dv-table-border) 881 | :is(.markdown-preview-view, .markdown-source-view):not(.cards) 882 | .table-view-table 883 | td { 884 | border: var(--table-border-width) solid var(--table-border-color); 885 | } 886 | 887 | .table-100.markdown-rendered table, 888 | .table-100.markdown-source-view.mod-cm6 .cm-table-widget table { 889 | width: 100%; 890 | } 891 | 892 | /* Dataview horizontal scroll */ 893 | .block-language-dataviewjs { 894 | overflow-x: scroll; 895 | } 896 | 897 | /* Tags */ 898 | body { 899 | --tag-radius: var(--radius-m); 900 | } 901 | 902 | /* Callout */ 903 | body { 904 | --callout-default: var(--color-purple-rgb); 905 | --callout-bug: var(--color-red-rgb); 906 | --callout-error: var(--color-red-rgb); 907 | --callout-example: var(--color-purple-rgb); 908 | --callout-fail: var(--color-red-rgb); 909 | --callout-important: var(--color-cyan-rgb); 910 | --callout-info: var(--color-blue-rgb); 911 | --callout-question: var(--color-yellow-rgb); 912 | --callout-success: var(--color-green-rgb); 913 | --callout-summary: var(--color-cyan-rgb); 914 | --callout-tip: var(--color-cyan-rgb); 915 | --callout-todo: var(--color-blue-rgb); 916 | --callout-warning: var(--color-orange-rgb); 917 | --callout-quote: var(--color-muted-rgb); 918 | 919 | --callout-padding: var(--size-4-4) var(--size-4-4) var(--size-4-4) var(--size-4-6); 920 | --callout-border-width: 1px; 921 | --callout-border-opacity: 0.15; 922 | } 923 | 924 | .callout:hover { 925 | --callout-border-opacity: 0.25; 926 | } 927 | 928 | .callout { 929 | background-color: rgba(var(--callout-color), 0.07); 930 | } 931 | 932 | .callout-title { 933 | gap: var(--size-4-2); 934 | } 935 | 936 | .callout p { 937 | margin-bottom: 4px; 938 | } 939 | 940 | /* embeded callouts horizontal margin */ 941 | .markdown-embed-content .markdown-preview-view .callout { 942 | margin: 0.7rem 0; 943 | } 944 | 945 | .callout-fold, 946 | .callout-icon { 947 | margin-top: 0px; 948 | } 949 | 950 | /* Frontmatter */ 951 | .cm-hmd-frontmatter.cm-atom, 952 | .cm-hmd-frontmatter.cm-meta { 953 | color: var(--text-faint); 954 | } 955 | 956 | /* Checkboxes icons */ 957 | body { 958 | /* Done checkbox */ 959 | --checklist-done-decoration: none; 960 | --checklist-done-color: var(--text-faint); 961 | 962 | /* Progress checkbox */ 963 | --checkbox-progress-width: 32px; 964 | } 965 | 966 | /* Alternative checkboxes */ 967 | body:not(.disable-alternative-checkboxes) { 968 | input[data-task='"']:checked, 969 | li[data-task='"'] > input:checked, 970 | li[data-task='"'] > p > input:checked, 971 | input[data-task="-"]:checked, 972 | li[data-task="-"] > input:checked, 973 | li[data-task="-"] > p > input:checked, 974 | input[data-task="!"]:checked, 975 | li[data-task="!"] > input:checked, 976 | li[data-task="!"] > p > input:checked, 977 | input[data-task="?"]:checked, 978 | li[data-task="?"] > input:checked, 979 | li[data-task="?"] > p > input:checked, 980 | input[data-task="“"]:checked, 981 | li[data-task="“"] > input:checked, 982 | li[data-task="“"] > p > input:checked, 983 | input[data-task="*"]:checked, 984 | li[data-task="*"] > input:checked, 985 | li[data-task="*"] > p > input:checked, 986 | input[data-task="/"]:checked, 987 | li[data-task="/"] > input:checked, 988 | li[data-task="/"] > p > input:checked, 989 | input[data-task="<"]:checked, 990 | li[data-task="<"] > input:checked, 991 | li[data-task="<"] > p > input:checked, 992 | input[data-task=">"]:checked, 993 | li[data-task=">"] > input:checked, 994 | li[data-task=">"] > p > input:checked, 995 | input[data-task="b"]:checked, 996 | li[data-task="b"] > input:checked, 997 | li[data-task="b"] > p > input:checked, 998 | input[data-task="c"]:checked, 999 | li[data-task="c"] > input:checked, 1000 | li[data-task="c"] > p > input:checked, 1001 | input[data-task="d"]:checked, 1002 | li[data-task="d"] > input:checked, 1003 | li[data-task="d"] > p > input:checked, 1004 | input[data-task="f"]:checked, 1005 | li[data-task="f"] > input:checked, 1006 | li[data-task="f"] > p > input:checked, 1007 | input[data-task="i"]:checked, 1008 | li[data-task="i"] > input:checked, 1009 | li[data-task="i"] > p > input:checked, 1010 | input[data-task="I"]:checked, 1011 | li[data-task="I"] > input:checked, 1012 | li[data-task="I"] > p > input:checked, 1013 | input[data-task="k"]:checked, 1014 | li[data-task="k"] > input:checked, 1015 | li[data-task="k"] > p > input:checked, 1016 | input[data-task="l"]:checked, 1017 | li[data-task="l"] > input:checked, 1018 | li[data-task="l"] > p > input:checked, 1019 | input[data-task="n"]:checked, 1020 | li[data-task="n"] > input:checked, 1021 | li[data-task="n"] > p > input:checked, 1022 | input[data-task="p"]:checked, 1023 | li[data-task="p"] > input:checked, 1024 | li[data-task="p"] > p > input:checked, 1025 | input[data-task="S"]:checked, 1026 | li[data-task="S"] > input:checked, 1027 | li[data-task="S"] > p > input:checked, 1028 | input[data-task="u"]:checked, 1029 | li[data-task="u"] > input:checked, 1030 | li[data-task="u"] > p > input:checked, 1031 | input[data-task="w"]:checked, 1032 | li[data-task="w"] > input:checked, 1033 | li[data-task="w"] > p > input:checked { 1034 | --checkbox-marker-color: transparent; 1035 | --checkbox-position: 50% 50%; 1036 | --checklist-done-color: var(--text-normal); 1037 | 1038 | color: transparent; 1039 | border: none; 1040 | border-radius: 0; 1041 | background-image: none; 1042 | background-color: currentColor; 1043 | mask-size: var(--checkbox-icon); 1044 | -webkit-mask-size: var(--checkbox-icon); 1045 | mask-position: 50% 50%; 1046 | -webkit-mask-position: 50% 50%; 1047 | mask-image: var(--checkbox-image); 1048 | -webkit-mask-image: var(--checkbox-image); 1049 | } 1050 | 1051 | /* [?] Question */ 1052 | input[data-task="?"]:checked, 1053 | li[data-task="?"] > input:checked, 1054 | li[data-task="?"] > p > input:checked { 1055 | color: var(--color-yellow); 1056 | --checkbox-image: url('data:image/svg+xml,%3Csvg xmlns="http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg" width="16" height="16" viewBox="0 0 20 20"%3E%3Cg fill="currentColor"%3E%3Cpath d="M11.739 16.213a2 2 0 1 1-4 0a2 2 0 0 1 4 0Z"%2F%3E%3Cpath fill-rule="evenodd" d="M9.71 4.765c-.67 0-1.245.2-1.65.486c-.39.276-.583.597-.639.874a1.45 1.45 0 0 1-2.842-.574c.227-1.126.925-2.045 1.809-2.67c.92-.65 2.086-1.016 3.322-1.016c2.557 0 5.208 1.71 5.208 4.456c0 1.59-.945 2.876-2.169 3.626a1.45 1.45 0 0 1-1.514-2.474c.57-.349.783-.794.783-1.152c0-.574-.715-1.556-2.308-1.556Z" clip-rule="evenodd"%2F%3E%3Cpath fill-rule="evenodd" d="M9.71 8.63c.8 0 1.45.648 1.45 1.45v1.502a1.45 1.45 0 1 1-2.9 0V10.08c0-.8.649-1.45 1.45-1.45Z" clip-rule="evenodd"%2F%3E%3Cpath fill-rule="evenodd" d="M13.239 7.966a1.45 1.45 0 0 1-.5 1.99l-2.284 1.367a1.45 1.45 0 0 1-1.49-2.488l2.285-1.368a1.45 1.45 0 0 1 1.989.5Z" clip-rule="evenodd"%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E'); 1057 | } 1058 | 1059 | /* [>] Forwarded */ 1060 | input[data-task=">"]:checked, 1061 | li[data-task=">"] > input:checked, 1062 | li[data-task=">"] > p > input:checked { 1063 | color: var(--color-green); 1064 | --checkbox-image: url('data:image/svg+xml;utf8,'); 1065 | } 1066 | 1067 | /* [<] Schedule */ 1068 | input[data-task="<"]:checked, 1069 | li[data-task="<"] > input:checked, 1070 | li[data-task="<"] > p > input:checked { 1071 | color: var(--color-blue); 1072 | --checkbox-image: url('data:image/svg+xml;utf8,'); 1073 | } 1074 | 1075 | /* [/] Incomplete */ 1076 | input[data-task="/"]:checked, 1077 | li[data-task="/"] > input:checked, 1078 | li[data-task="/"] > p > input:checked { 1079 | overflow: hidden; 1080 | border-radius: 3px; 1081 | } 1082 | 1083 | input[data-task="/"]:checked:after, 1084 | li[data-task="/"] > input:checked:after, 1085 | li[data-task="/"] > p > input:checked:after { 1086 | top: 0; 1087 | left: 0; 1088 | content: " "; 1089 | display: block; 1090 | position: absolute; 1091 | background-color: var(--checkbox-color); 1092 | width: 50%; 1093 | height: 100%; 1094 | mask-image: none; 1095 | -webkit-mask-image: none; 1096 | } 1097 | 1098 | /* [!] Important */ 1099 | input[data-task="!"]:checked, 1100 | li[data-task="!"] > input:checked, 1101 | li[data-task="!"] > p > input:checked { 1102 | color: var(--color-orange); 1103 | --checkbox-image: url('data:image/svg+xml;utf8,'); 1104 | } 1105 | 1106 | /* ["] Quote */ 1107 | input[data-task='"']:checked, 1108 | li[data-task='"'] > input:checked, 1109 | li[data-task='"'] > p > input:checked, 1110 | input[data-task="“"]:checked, 1111 | li[data-task="“"] > input:checked, 1112 | li[data-task="“"] > p > input:checked { 1113 | color: var(--text-muted); 1114 | --checkbox-image: url('data:image/svg+xml;utf8,'); 1115 | } 1116 | 1117 | /* [-] Canceled */ 1118 | input[data-task="-"]:checked, 1119 | li[data-task="-"] > input:checked, 1120 | li[data-task="-"] > p > input:checked { 1121 | color: var(--text-faint); 1122 | --checkbox-image: url('data:image/svg+xml;utf8,'); 1123 | } 1124 | 1125 | .markdown-source-view.mod-cm6 .HyperMD-task-line[data-task="-"], 1126 | .markdown-preview-view ul > li[data-task="-"].task-list-item.is-checked, 1127 | li[data-task="-"].task-list-item.is-checked { 1128 | color: var(--text-faint); 1129 | text-decoration: line-through solid var(--text-faint) 1px; 1130 | } 1131 | 1132 | /* [*] Star */ 1133 | input[data-task="*"]:checked, 1134 | li[data-task="*"] > input:checked, 1135 | li[data-task="*"] > p > input:checked { 1136 | color: var(--color-yellow); 1137 | --checkbox-image: url('data:image/svg+xml;utf8,'); 1138 | } 1139 | 1140 | /* [l] Location */ 1141 | input[data-task="l"]:checked, 1142 | li[data-task="l"] > input:checked, 1143 | li[data-task="l"] > p > input:checked { 1144 | color: var(--color-red); 1145 | --checkbox-image: url('data:image/svg+xml;utf8,'); 1146 | } 1147 | 1148 | /* [i] Info */ 1149 | input[data-task="i"]:checked, 1150 | li[data-task="i"] > input:checked, 1151 | li[data-task="i"] > p > input:checked { 1152 | color: var(--color-cyan); 1153 | --checkbox-image: url('data:image/svg+xml;utf8,'); 1154 | } 1155 | 1156 | /* [S] Money */ 1157 | input[data-task="S"]:checked, 1158 | li[data-task="S"] > input:checked, 1159 | li[data-task="S"] > p > input:checked { 1160 | color: var(--color-green); 1161 | --checkbox-image: url('data:image/svg+xml;utf8,'); 1162 | } 1163 | 1164 | /* [I] Idea */ 1165 | input[data-task="I"]:checked, 1166 | li[data-task="I"] > input:checked, 1167 | li[data-task="I"] > p > input:checked { 1168 | color: var(--color-yellow); 1169 | --checkbox-image: url('data:image/svg+xml;utf8,'); 1170 | } 1171 | 1172 | /* [f] Fire */ 1173 | input[data-task="f"]:checked, 1174 | li[data-task="f"] > input:checked, 1175 | li[data-task="f"] > p > input:checked { 1176 | color: var(--color-red); 1177 | --checkbox-image: url('data:image/svg+xml;utf8,'); 1178 | } 1179 | 1180 | /* [k] Key */ 1181 | input[data-task="k"]:checked, 1182 | li[data-task="k"] > input:checked, 1183 | li[data-task="k"] > p > input:checked { 1184 | color: var(--color-yellow); 1185 | --checkbox-image: url('data:image/svg+xml;utf8,'); 1186 | } 1187 | 1188 | /* [u] Trend Up */ 1189 | input[data-task="u"]:checked, 1190 | li[data-task="u"] > input:checked, 1191 | li[data-task="u"] > p > input:checked { 1192 | color: var(--color-green); 1193 | --checkbox-image: url('data:image/svg+xml;utf8,'); 1194 | } 1195 | 1196 | /* [d] Trend Down */ 1197 | input[data-task="d"]:checked, 1198 | li[data-task="d"] > input:checked, 1199 | li[data-task="d"] > p > input:checked { 1200 | color: var(--color-red); 1201 | --checkbox-image: url('data:image/svg+xml;utf8,'); 1202 | } 1203 | 1204 | /* [w] Win */ 1205 | input[data-task="w"]:checked, 1206 | li[data-task="w"] > input:checked, 1207 | li[data-task="w"] > p > input:checked { 1208 | color: var(--color-blue); 1209 | --checkbox-image: url('data:image/svg+xml;utf8,'); 1210 | } 1211 | 1212 | /* [p] Pros */ 1213 | input[data-task="p"]:checked, 1214 | li[data-task="p"] > input:checked, 1215 | li[data-task="p"] > p > input:checked { 1216 | color: var(--color-green); 1217 | --checkbox-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' class='h-5 w-5' viewBox='0 0 20 20' fill='currentColor'%3E%3Cpath d='M2 10.5a1.5 1.5 0 113 0v6a1.5 1.5 0 01-3 0v-6zM6 10.333v5.43a2 2 0 001.106 1.79l.05.025A4 4 0 008.943 18h5.416a2 2 0 001.962-1.608l1.2-6A2 2 0 0015.56 8H12V4a2 2 0 00-2-2 1 1 0 00-1 1v.667a4 4 0 01-.8 2.4L6.8 7.933a4 4 0 00-.8 2.4z' /%3E%3C/svg%3E"); 1218 | } 1219 | 1220 | /* [c] Cons */ 1221 | input[data-task="c"]:checked, 1222 | li[data-task="c"] > input:checked, 1223 | li[data-task="c"] > p > input:checked { 1224 | color: var(--color-orange); 1225 | transform: rotate(180deg); 1226 | --checkbox-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' class='h-5 w-5' viewBox='0 0 20 20' fill='currentColor'%3E%3Cpath d='M2 10.5a1.5 1.5 0 113 0v6a1.5 1.5 0 01-3 0v-6zM6 10.333v5.43a2 2 0 001.106 1.79l.05.025A4 4 0 008.943 18h5.416a2 2 0 001.962-1.608l1.2-6A2 2 0 0015.56 8H12V4a2 2 0 00-2-2 1 1 0 00-1 1v.667a4 4 0 01-.8 2.4L6.8 7.933a4 4 0 00-.8 2.4z' /%3E%3C/svg%3E"); 1227 | } 1228 | 1229 | /* [b] Bookmark */ 1230 | input[data-task="b"]:checked, 1231 | li[data-task="b"] > input:checked, 1232 | li[data-task="b"] > p > input:checked { 1233 | color: var(--color-orange); 1234 | --checkbox-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' class='h-5 w-5' viewBox='0 0 20 20' fill='currentColor'%3E%3Cpath d='M5 4a2 2 0 012-2h6a2 2 0 012 2v14l-5-2.5L5 18V4z' /%3E%3C/svg%3E"); 1235 | } 1236 | 1237 | /* [n] New */ 1238 | input[data-task="n"]:checked, 1239 | li[data-task="n"] > input:checked, 1240 | li[data-task="n"] > p > input:checked { 1241 | color: var(--color-blue); 1242 | --checkbox-image: url('data:image/svg+xml;utf8,'); 1243 | } 1244 | 1245 | /* [0-4] Progress */ 1246 | input[data-task="0"]:checked, 1247 | li[data-task="0"] > input:checked, 1248 | li[data-task="0"] > p > input:checked, 1249 | input[data-task="1"]:checked, 1250 | li[data-task="1"] > input:checked, 1251 | li[data-task="1"] > p > input:checked, 1252 | input[data-task="2"]:checked, 1253 | li[data-task="2"] > input:checked, 1254 | li[data-task="2"] > p > input:checked, 1255 | input[data-task="3"]:checked, 1256 | li[data-task="3"] > input:checked, 1257 | li[data-task="3"] > p > input:checked, 1258 | input[data-task="4"]:checked, 1259 | li[data-task="4"] > input:checked, 1260 | li[data-task="4"] > p > input:checked { 1261 | background: transparent; 1262 | background-image: none; 1263 | width: var(--checkbox-progress-width); 1264 | height: 14px; 1265 | border: 2px solid var(--interactive-accent); 1266 | border-radius: 10px; 1267 | position: relative; 1268 | overflow: hidden; 1269 | mask-image: none; 1270 | -webkit-mask-image: none; 1271 | 1272 | &:hover { 1273 | background-color: transparent; 1274 | 1275 | &::after { 1276 | background: var(--interactive-accent-hover); 1277 | } 1278 | } 1279 | 1280 | &::after { 1281 | content: " "; 1282 | display: block; 1283 | background: var(--interactive-accent); 1284 | width: calc(var(--checkbox-progress-width) * var(--checkbox-progress-frac)); 1285 | height: 100%; 1286 | top: 0; 1287 | border-radius: 10px; 1288 | mask-image: none; 1289 | -webkit-mask-image: none; 1290 | transition: width 0.15s ease-out; 1291 | } 1292 | } 1293 | 1294 | input[data-task="0"], 1295 | li[data-task="0"] { 1296 | --checkbox-progress-frac: 0; 1297 | } 1298 | 1299 | input[data-task="1"], 1300 | li[data-task="1"] { 1301 | --checkbox-progress-frac: 0.25; 1302 | } 1303 | 1304 | input[data-task="2"], 1305 | li[data-task="2"] { 1306 | --checkbox-progress-frac: 0.5; 1307 | } 1308 | 1309 | input[data-task="3"], 1310 | li[data-task="3"] { 1311 | --checkbox-progress-frac: 0.75; 1312 | } 1313 | 1314 | input[data-task="4"], 1315 | li[data-task="4"] { 1316 | --checkbox-progress-frac: 1; 1317 | } 1318 | } 1319 | 1320 | /* * Kanban */ 1321 | /* from things theme: https://github.com/colineckert/obsidian-things */ 1322 | body:not(.no-kanban-styles) .kanban-plugin { 1323 | --dot-color: hsl(0 0% 40% / 20%); 1324 | --dot-spacing: 20px; 1325 | --dot-size: 1px; 1326 | } 1327 | 1328 | .theme-light .kanban-plugin { 1329 | --kanban-item-background: var(--base-60); 1330 | --kanban-item-active-background: var(--base-55); 1331 | --kanban-item-new-background: var(--base-60); 1332 | } 1333 | 1334 | .theme-dark .kanban-plugin { 1335 | --kanban-item-background: var(--base-50); 1336 | --kanban-item-active-background: var(--base-60); 1337 | --kanban-item-new-background: var(--base-60); 1338 | } 1339 | 1340 | body:not(.no-kanban-styles) .kanban-plugin__item-title-wrapper { 1341 | padding: 8px 8px 8px 12px; 1342 | } 1343 | 1344 | .kanban-plugin__item-title-wrapper { 1345 | background: var(--kanban-item-background); 1346 | } 1347 | 1348 | .kanban-plugin__item-title-wrapper[data-ignore-drag="true"] { 1349 | background: var(--kanban-item-active-background); 1350 | } 1351 | 1352 | body:not(.no-kanban-styles) .kanban-plugin__item-form .kanban-plugin__item-input-wrapper { 1353 | background-color: var(--kanban-item-new-background); 1354 | } 1355 | 1356 | body:not(.no-kanban-styles) .kanban-plugin__lane-items > div { 1357 | margin-top: 6px; 1358 | } 1359 | 1360 | body:not(.no-kanban-styles) .kanban-plugin__board { 1361 | background-image: radial-gradient( 1362 | circle, 1363 | var(--dot-color) var(--dot-size), 1364 | transparent var(--dot-size) 1365 | ); 1366 | border-top: var(--thin-border); 1367 | background-size: var(--dot-spacing) var(--dot-spacing); 1368 | background-attachment: local; 1369 | } 1370 | 1371 | body:not(.no-kanban-styles) .kanban-plugin__board > div { 1372 | margin: 0 auto; 1373 | } 1374 | 1375 | body:not(.no-kanban-styles) .kanban-plugin__item-form { 1376 | border-top: none; 1377 | } 1378 | 1379 | body:not(.no-kanban-styles) .kanban-plugin__lane-header-wrapper { 1380 | border-bottom: 0; 1381 | } 1382 | 1383 | body:not(.no-kanban-styles) .kanban-plugin button { 1384 | box-shadow: none; 1385 | } 1386 | 1387 | body:not(.no-kanban-styles) .kanban-plugin__item-button-wrapper > button:hover { 1388 | color: var(--text-normal); 1389 | background: var(--background-modifier-hover); 1390 | } 1391 | 1392 | body:not(.no-kanban-styles) .kanban-plugin__item-button-wrapper { 1393 | border-top: none; 1394 | } 1395 | 1396 | body:not(.no-kanban-styles) .kanban-plugin__lane { 1397 | border: 1px solid transparent; 1398 | } 1399 | 1400 | body:not(.no-kanban-styles) .kanban-plugin__item-content-wrapper { 1401 | box-shadow: none; 1402 | } 1403 | 1404 | body:not(.no-kanban-styles):not(.is-mobile) .kanban-plugin__grow-wrap > textarea:focus { 1405 | box-shadow: none; 1406 | } 1407 | 1408 | body:not(.no-kanban-styles) .kanban-plugin__item-input-actions button, 1409 | body:not(.no-kanban-styles) .kanban-plugin__lane-input-actions button { 1410 | font-size: var(--font-adaptive-small); 1411 | } 1412 | 1413 | .kanban-plugin__lane-header-wrapper .kanban-plugin__grow-wrap > textarea, 1414 | .kanban-plugin__grow-wrap > textarea { 1415 | background: transparent; 1416 | } 1417 | 1418 | .kanban-plugin__item-prefix-button-wrapper input[type="checkbox"] { 1419 | filter: none; 1420 | } 1421 | 1422 | /* * Hover editor */ 1423 | .popover.hover-editor .popover-titlebar { 1424 | --he-title-bar-active-bg: var(--interactive-accent); 1425 | --he-title-bar-active-pinned-bg: var(--interactive-accent); 1426 | --he-title-bar-inactive-bg: var(--base-45); 1427 | --he-title-bar-inactive-pinned-bg: var(--base-45); 1428 | 1429 | --he-title-bar-active-fg: var(--base-05); 1430 | --he-title-bar-active-action: var(--base-05); 1431 | --he-title-bar-inactive-fg: var(--text-normal); 1432 | --he-title-bar-inactive-action: var(--text-normal); 1433 | } 1434 | 1435 | .popover.hover-editor.is-active .popover-titlebar { 1436 | --he-title-bar-inactive-action: var(--base-05); 1437 | } 1438 | 1439 | /* * meta bind */ 1440 | .meta-bind-plugin-input input[type="number"] { 1441 | width: 72px; 1442 | margin-right: 4px; 1443 | height: 24px; 1444 | background-color: var(--base-50); 1445 | border-color: var(--base-50); 1446 | } 1447 | 1448 | .meta-bind-plugin-input input[type="number"]:hover { 1449 | border-color: var(--base-40); 1450 | } 1451 | 1452 | /* Canvas */ 1453 | .canvas-node-container { 1454 | border: 1.5px solid var(--background-modifier-border-focus); 1455 | } 1456 | 1457 | /* MIT License | Copyright (c) Stephan Ango (@kepano) 1458 | 1459 | Cards snippet for Obsidian 1460 | 1461 | author: @kepano 1462 | version: 3.0.0 1463 | 1464 | Support my work: 1465 | https://github.com/sponsors/kepano 1466 | 1467 | */ 1468 | body { 1469 | --cards-min-width: 150px; 1470 | --cards-max-width: 1fr; 1471 | --cards-mobile-width: 120px; 1472 | --cards-image-height: 400px; 1473 | --cards-padding: 1.2em; 1474 | --cards-image-fit: contain; 1475 | --cards-background: transparent; 1476 | --cards-border-width: 1px; 1477 | --cards-aspect-ratio: auto; 1478 | --cards-columns: repeat(auto-fit, minmax(var(--cards-min-width), var(--cards-max-width))); 1479 | } 1480 | 1481 | @media (max-width: 400pt) { 1482 | body { 1483 | --cards-min-width: var(--cards-mobile-width); 1484 | } 1485 | } 1486 | .cards.table-100 table.dataview tbody, 1487 | .table-100 .cards table.dataview tbody { 1488 | padding: 0.25rem 0.75rem; 1489 | } 1490 | 1491 | .cards table.dataview { 1492 | --table-width: 100%; 1493 | --table-edge-cell-padding-first: calc(var(--cards-padding) / 2); 1494 | --table-edge-cell-padding-last: calc(var(--cards-padding) / 2); 1495 | --table-cell-padding: calc(var(--cards-padding) / 3) calc(var(--cards-padding) / 2); 1496 | line-height: 1.3; 1497 | } 1498 | .cards table.dataview tbody { 1499 | clear: both; 1500 | padding: 0.5rem 0; 1501 | display: grid; 1502 | grid-template-columns: var(--cards-columns); 1503 | grid-column-gap: 0.75rem; 1504 | grid-row-gap: 0.75rem; 1505 | } 1506 | .cards table.dataview > tbody > tr { 1507 | background-color: var(--cards-background); 1508 | border: var(--cards-border-width) solid var(--background-modifier-border); 1509 | display: flex; 1510 | flex-direction: column; 1511 | margin: 0; 1512 | padding: 0 0 calc(var(--cards-padding) / 3) 0; 1513 | border-radius: 6px; 1514 | overflow: hidden; 1515 | transition: box-shadow 0.15s linear; 1516 | max-width: var(--cards-max-width); 1517 | } 1518 | .cards table.dataview > tbody > tr:hover { 1519 | border: var(--cards-border-width) solid var(--background-modifier-border-hover); 1520 | box-shadow: 1521 | 0 4px 6px 0px rgba(0, 0, 0, 0.05), 1522 | 0 1px 3px 1px rgba(0, 0, 0, 0.025); 1523 | transition: box-shadow 0.15s linear; 1524 | } 1525 | 1526 | .cards table.dataview tbody > tr > td:first-child { 1527 | font-weight: var(--bold-weight); 1528 | border: none; 1529 | } 1530 | .cards table.dataview tbody > tr > td:first-child a { 1531 | display: block; 1532 | } 1533 | .cards table.dataview tbody > tr > td:last-child { 1534 | border: none; 1535 | } 1536 | .cards table.dataview tbody > tr > td:not(:first-child) { 1537 | font-size: calc(var(--table-text-size) * 0.9); 1538 | color: var(--text-muted); 1539 | } 1540 | .cards table.dataview tbody > tr > td > * { 1541 | padding: calc(var(--cards-padding) / 3) 0; 1542 | } 1543 | .cards table.dataview tbody > tr > td:not(:last-child):not(:first-child) { 1544 | padding: 4px 0; 1545 | border-bottom: 1px solid var(--background-modifier-border); 1546 | width: calc(100% - var(--cards-padding)); 1547 | margin: 0 calc(var(--cards-padding) / 2); 1548 | } 1549 | .cards table.dataview tbody > tr > td a { 1550 | text-decoration: none; 1551 | } 1552 | .cards table.dataview tbody > tr > td > button { 1553 | width: 100%; 1554 | margin: calc(var(--cards-padding) / 2) 0; 1555 | } 1556 | .cards table.dataview tbody > tr > td:last-child > button { 1557 | margin-bottom: calc(var(--cards-padding) / 6); 1558 | } 1559 | .cards table.dataview tbody > tr > td > ul { 1560 | width: 100%; 1561 | padding: 0.25em 0 !important; 1562 | margin: 0 auto !important; 1563 | } 1564 | .cards table.dataview tbody > tr > td:has(img) { 1565 | padding: 0 !important; 1566 | background-color: var(--background-secondary); 1567 | display: block; 1568 | margin: 0; 1569 | width: 100%; 1570 | } 1571 | .cards table.dataview tbody > tr > td img { 1572 | aspect-ratio: var(--cards-aspect-ratio); 1573 | width: 100%; 1574 | object-fit: var(--cards-image-fit); 1575 | max-height: var(--cards-image-height); 1576 | background-color: var(--background-secondary); 1577 | vertical-align: bottom; 1578 | } 1579 | 1580 | .markdown-source-view.mod-cm6.cards .dataview.table-view-table > tbody > tr > td, 1581 | .trim-cols .cards table.dataview tbody > tr > td { 1582 | white-space: normal; 1583 | } 1584 | 1585 | .links-int-on .cards table { 1586 | --link-decoration: none; 1587 | } 1588 | 1589 | /* Block button */ 1590 | .markdown-source-view.mod-cm6.cards .edit-block-button { 1591 | top: 0px; 1592 | right: initial; 1593 | } 1594 | 1595 | /* ------------------- */ 1596 | /* Sorting menu */ 1597 | .cards.table-100 table.dataview thead > tr, 1598 | .table-100 .cards table.dataview thead > tr { 1599 | right: 0.75rem; 1600 | } 1601 | 1602 | .table-100 .cards table.dataview thead:before, 1603 | .cards.table-100 table.dataview thead:before { 1604 | margin-right: 0.75rem; 1605 | } 1606 | 1607 | .theme-light .cards table.dataview thead:before { 1608 | background-image: url('data:image/svg+xml;utf8,'); 1609 | } 1610 | 1611 | .cards table.dataview thead { 1612 | user-select: none; 1613 | width: 180px; 1614 | display: block; 1615 | float: right; 1616 | position: relative; 1617 | text-align: right; 1618 | height: 24px; 1619 | padding-bottom: 0px; 1620 | } 1621 | .cards table.dataview thead:hover:before { 1622 | opacity: 0.5; 1623 | background-color: var(--background-modifier-hover); 1624 | } 1625 | .cards table.dataview thead:before { 1626 | content: ""; 1627 | position: absolute; 1628 | right: 0; 1629 | top: 0; 1630 | width: 10px; 1631 | height: 16px; 1632 | background-repeat: no-repeat; 1633 | cursor: var(--cursor); 1634 | text-align: right; 1635 | padding: var(--size-4-1) var(--size-4-2); 1636 | margin-bottom: 2px; 1637 | border-radius: var(--radius-s); 1638 | font-weight: 500; 1639 | font-size: var(--font-adaptive-small); 1640 | opacity: 0.25; 1641 | background-position: center center; 1642 | background-size: 16px; 1643 | background-image: url('data:image/svg+xml;utf8,'); 1644 | } 1645 | .cards table.dataview thead > tr { 1646 | top: -1px; 1647 | position: absolute; 1648 | display: none; 1649 | z-index: 9; 1650 | border: 1px solid var(--background-modifier-border-hover); 1651 | background-color: var(--background-secondary); 1652 | box-shadow: var(--shadow-s); 1653 | padding: 6px; 1654 | border-radius: var(--radius-m); 1655 | flex-direction: column; 1656 | margin: 24px 0 0 0; 1657 | width: 100%; 1658 | } 1659 | .cards table.dataview thead:hover > tr { 1660 | display: flex; 1661 | } 1662 | .cards table.dataview thead > tr > th { 1663 | display: block; 1664 | padding: 3px 30px 3px 6px !important; 1665 | border-radius: var(--radius-s); 1666 | width: 100%; 1667 | font-weight: 400; 1668 | color: var(--text-normal); 1669 | cursor: var(--cursor); 1670 | border: none; 1671 | font-size: var(--font-ui-small); 1672 | } 1673 | .cards table.dataview thead > tr > th[sortable-style="sortable-asc"], 1674 | .cards table.dataview thead > tr > th[sortable-style="sortable-desc"] { 1675 | color: var(--text-normal); 1676 | } 1677 | .cards table.dataview thead > tr > th:hover { 1678 | color: var(--text-normal); 1679 | background-color: var(--background-modifier-hover); 1680 | } 1681 | 1682 | /* ------------------- */ 1683 | /* Card lists */ 1684 | .list-cards.markdown-preview-view .list-bullet, 1685 | .list-cards.markdown-preview-view .list-collapse-indicator, 1686 | .list-cards.markdown-preview-view.markdown-rendered.show-indentation-guide li > ul::before { 1687 | display: none; 1688 | } 1689 | .list-cards.markdown-preview-view div > ul { 1690 | display: grid; 1691 | gap: 0.75rem; 1692 | grid-template-columns: var(--cards-columns); 1693 | padding: 0; 1694 | line-height: var(--line-height-tight); 1695 | } 1696 | .list-cards.markdown-preview-view div > ul > li { 1697 | background-color: var(--cards-background); 1698 | padding: calc(var(--cards-padding) / 2); 1699 | border-radius: var(--radius-s); 1700 | border: var(--cards-border-width) solid var(--background-modifier-border); 1701 | overflow: hidden; 1702 | } 1703 | .list-cards.markdown-preview-view div > ul .image-embed { 1704 | padding: 0; 1705 | display: block; 1706 | background-color: var(--background-secondary); 1707 | border-radius: var(--image-radius); 1708 | } 1709 | .list-cards.markdown-preview-view div > ul .image-embed img { 1710 | aspect-ratio: var(--cards-aspect-ratio); 1711 | object-fit: var(--cards-image-fit); 1712 | max-height: var(--cards-image-height); 1713 | background-color: var(--background-secondary); 1714 | vertical-align: bottom; 1715 | } 1716 | .list-cards.markdown-preview-view div > ul > li > a { 1717 | --link-decoration: none; 1718 | --link-external-decoration: none; 1719 | font-weight: var(--bold-weight); 1720 | } 1721 | .list-cards.markdown-preview-view div ul > li:hover { 1722 | border-color: var(--background-modifier-border-hover); 1723 | } 1724 | .list-cards.markdown-preview-view div ul ul { 1725 | display: block; 1726 | width: 100%; 1727 | color: var(--text-muted); 1728 | font-size: var(--font-smallest); 1729 | margin: calc(var(--cards-padding) / -4) 0; 1730 | padding: calc(var(--cards-padding) / 2) 0; 1731 | } 1732 | .list-cards.markdown-preview-view div ul ul ul { 1733 | padding-bottom: calc(var(--cards-padding) / 4); 1734 | } 1735 | .list-cards.markdown-preview-view div ul ul > li { 1736 | display: block; 1737 | } 1738 | 1739 | /* ------------------- */ 1740 | /* Helper classes */ 1741 | .cards.cards-16-9, 1742 | .list-cards.cards-16-9 { 1743 | --cards-aspect-ratio: 16/9; 1744 | } 1745 | .cards.cards-1-1, 1746 | .list-cards.cards-1-1 { 1747 | --cards-aspect-ratio: 1/1; 1748 | } 1749 | .cards.cards-2-1, 1750 | .list-cards.cards-2-1 { 1751 | --cards-aspect-ratio: 2/1; 1752 | } 1753 | .cards.cards-2-3, 1754 | .list-cards.cards-2-3 { 1755 | --cards-aspect-ratio: 2/3; 1756 | } 1757 | .cards.cards-cols-1, 1758 | .list-cards.cards-cols-1 { 1759 | --cards-columns: repeat(1, minmax(0, 1fr)); 1760 | } 1761 | .cards.cards-cols-2, 1762 | .list-cards.cards-cols-2 { 1763 | --cards-columns: repeat(2, minmax(0, 1fr)); 1764 | } 1765 | .cards.cards-cover, 1766 | .list-cards.cards-cover { 1767 | --cards-image-fit: cover; 1768 | } 1769 | .cards.cards-align-bottom table.dataview tbody > tr > td:last-child, 1770 | .list-cards.cards-align-bottom table.dataview tbody > tr > td:last-child { 1771 | align-items: flex-end; 1772 | flex-grow: 1; 1773 | } 1774 | 1775 | @media (max-width: 400pt) { 1776 | .cards table.dataview tbody > tr > td:not(:first-child) { 1777 | font-size: 80%; 1778 | } 1779 | } 1780 | @media (min-width: 400pt) { 1781 | .cards-cols-3 { 1782 | --cards-columns: repeat(3, minmax(0, 1fr)); 1783 | } 1784 | 1785 | .cards-cols-4 { 1786 | --cards-columns: repeat(4, minmax(0, 1fr)); 1787 | } 1788 | 1789 | .cards-cols-5 { 1790 | --cards-columns: repeat(5, minmax(0, 1fr)); 1791 | } 1792 | 1793 | .cards-cols-6 { 1794 | --cards-columns: repeat(6, minmax(0, 1fr)); 1795 | } 1796 | 1797 | .cards-cols-7 { 1798 | --cards-columns: repeat(7, minmax(0, 1fr)); 1799 | } 1800 | 1801 | .cards-cols-8 { 1802 | --cards-columns: repeat(8, minmax(0, 1fr)); 1803 | } 1804 | } 1805 | --------------------------------------------------------------------------------