墨迹 版式

这是什么

CroquemboucheCroquembouche用在一大堆页面上的一大堆各种各样的CSS“改进”,因为我觉得这样就能使其更容易处理。

该组件做出了很多非常细碎的改动以使得写作体验更加舒服且能够使制作组件/版式更加容易一点(也就是我经常干的事)。它不会对读者来说在视觉上改变页面中的任何东西——这些改动是为作者服务的。

我不期望用了这个组件的文章的翻译版也会用到这个组件,除非那个翻译者也喜欢这个组件而且也想用这个组件之类的。

这个组件可能不会与其它组件或版式冲突,且即使会冲突,也可能不会有什么影响。

用法

在任意维基上:

[[include :scp-wiki:component:croqstyle]]

该组件被设计于与其它组件一同使用,所以-=-是用来隐藏该文档的。在另一个组件内使用时,请确保将该组件放在[[iftags]],这样你的组件的用户就不会强制同样使用 Croq 风格。

相关组件

其它个人自定义组件(只会改变一点点东西):

个人自定义版式(在视觉上有大的变化):

CSS修改

大小合理的脚注

不让脚注达到一百万里那么宽,让你能确实地阅读脚注。

css
.hovertip { max-width: 400px; }

等宽字体编辑/代码

使编辑文本框内字体等宽,且将所有等宽字文本改为Fira Code,也是个明显很优秀的等宽字字体。

css
@import url('https://fonts.googleapis.com/css2?family=Fira+Code:wght@400;700&display=swap');

:root { --mono-font: "Fira Code", Cousine, monospace; }
#edit-page-textarea, .code pre, .code p, .code, tt, .page-source { font-family: var(--mono-font); }
.code pre * { white-space: pre; }
.code *, .pre * { font-feature-settings: unset; }

电传打字机背景

给<tt>元素加上亮灰色的背景({{文本}}),使得代码片段更为突出。

css
tt {
  background-color: var(--swatch-something-bhl-idk-will-fix-later, #f4f4f4);
  font-size: 85%;
  padding: 0.2em 0.4em;
  margin: 0;
  border-radius: 6px;
}

不要大脸

禁用悬停于某人的头像的时候出现的大图片,因为这图片又蠢又真的很烦人,想看大头像版本的话直接点击一下就行了。

css
.avatar-hover { display: none !important; }

碎裂碎裂

任何在带有nobreak类的div中的文本可以在字母间自动换行。

css
.nobreak { word-break: break-all; }

代码颜色

将我终端中的代码颜色加为变量。可能我会在什么时候把它改成比如Monokai或者别的更加常见的终端主题,但是现在暂时这还是我的个人主题,是从Tomorrow Night Eighties中衍生而来的。

还有,将.terminal类像[[div class="code terminal"]]一样添加到假代码方块中可以让它有一个有点伪终端样的暗色背景。不能用在[[code]]中,因为Wikidot嵌入了一大堆语法来使其高亮,不用一大堆CSS是改不动的。只能用在非[[code]]的代码片段中。

css
:root {
  --c-bg: #393939;
  --c-syntax: #e0e0e0;
  --c-comment: #999999;
  --c-error: #f2777a;
  --c-value: #f99157;
  --c-symbol: #ffcc66;
  --c-string: #99cc99;
  --c-operator: #66cccc;
  --c-builtin: #70a7df;
  --c-keyword: #cc99cc;
}

.terminal, .terminal > .code {
  color: var(--c-syntax);
  background: var(--c-bg);
  border: 0.4rem solid var(--c-comment);
  border-radius: 1rem;
}

调试模式

将位于.debug-mode中的任何东西周围画上线。线的颜色是红色的但是遵从CSS变量--debug-colour

你还可以将div.debug-info.overdiv.debug-info.under添加到某个元素中以给调试框加注释——虽然你得确保有留下足够的垂直空间,让注释不会与其上方或下方的东西重叠。

……就像这样!

css
.debug-mode, .debug-mode *, .debug-mode *::before, .debug-mode *::after {
  outline: 1px solid var(--debug-colour, red);
  position: relative;
}
.debug-info {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  font-family: 'Fira Code', monospace;
  font-size: 1rem;
  white-space: nowrap;
}
.debug-info.over { top: -2.5rem; }
.debug-info.under { bottom: -2.5rem; }
.debug-info p { margin: 0; }
[[embed]]<iframe src="//interwiki.scpwikicn.com/styleFrame.html?priority=1&type=sidebar&override={$override}&theme=https://scp-wiki-cn.wdfiles.com/local--code/theme%3Ainkblot/1&css=%3Aroot%7B—inkblot-accent%3Acoral%7D" style="display: none"></iframe>[[/embed]]

这是

墨迹

主题。

一个用于评论的主题。
作者:CroquemboucheCroquembouche
需要5分钟阅读。
⭐⭐⭐★★

pancakes.png

本页中有几点:
  1. 墨迹主题的源代码。
  2. 华尔登工作室的写作指导。
  3. 对长文本环境中的主题展示。
墨迹主题是为由华尔登工作室写作的安布罗斯餐厅的评论而设计的。华尔登工作室,我觉得是,一个安布罗斯的子GoI。但你可以在任何地方使用它。使用说明在前言下方。
+ 快速复制- hide block

[[include :scp-wiki-cn:theme:inkblot]]

[[module CSS]]
:root {
  --inkblot-accent: transparent;
  --header-title: "华尔登工作室";
  --header-subtitle: "未知的鉴赏家";
}
[[/module]]

[[div class="inkblot-header"]]

[[div class="inkblot-title"]]
[[div class="title-1"]]
标题
[[/div]]
[[div class="title-2"]]
标题
[[/div]]
[[div class="title-3"]]
标题
[[/div]]
[[div class="title-4"]]
标题
[[/div]]
[[/div]]

[[div class="inkblot-info"]]
关于书呆子的评论
作者:书呆子。
需要XX分钟阅读。
⭐⭐⭐⭐★

[[div class="inkblot-image"]]
[[image https://scp-wiki.wdfiles.com/local--files/theme:inkblot/pancakes.png]]
[[/div]]
[[/div]]
[[/div]]

使用几种不同的重点颜色预览该主题:
CoralPuceRoyalBlueYellowGreenRedMagentaTealGold

若要同时使用Sigma-9的切换侧边栏组件:
+ 对切换侧边栏的额外说明- hide block

在切换侧边栏组件引用该版式。

在页面中加上这一点兼容性CSS:

[[module CSS]]
/* 切换侧边栏兼容 */#side-bar { top: 0; }
.inkblot-header { width: 100%; left: 0; }
[[/module]]


前言

在下层宇宙中,华尔登工作室取代了我首设中的“米其林指南,由暗网提供技术支持”1,因为我不太想被真正的米其林指南起诉侵犯知识产权。目前,安布罗斯格式正在自残。很多安布罗斯的文章都是由一组不相关的菜单项目以及一组不相关评论组成。这是一种霰弹枪式的做法2——真的很无聊,没有叙事线索可循,没有东西可以引起你的兴趣。它鼓励读者变得不感兴趣。列表会分散注意力。即使你写得很好并超越了这些限制,那为什么一开始就要受限制?真的很遗憾,因为安布罗斯格式很有前途。如果将这些评论交织在一起,就能讲述一个相互关联的故事。菜单是个绝妙的想法——其他GoI不会鼓励这种创意的!这就是安布罗斯格式最初的设想。3但是很难将能让这种格式变得神奇的小细节想得很全面,很容易创造出看起来正确但实际上不正确的东西。华尔登工作室是对安布罗斯格式的另一种尝试。华尔登工作室只把一件事情做到最好——对一件事情以及它的方方面面进行复杂、深入的评论。单线专注。不会分心。这意味着在由华尔登工作室写作的安布罗斯格式文章里,你能看到的只有一篇评论。在视觉创意水平相同的情况下,少了很多能分散注意力的部分,以此让你能写出篇好故事。华尔登工作室没有中心页,因为我才刚刚给他们做了个页面,而我觉得会有的。华尔登工作室是一个由评论员组成的小团队——可能有十个人,最多了——试图在评论的行业里闯出一条路(尝试过,也失败过,但他们绝不会承认)。他们的组织很随意,没有很强烈的等级制度。他们专注于高质量事物的高质量评论。他们对小细节有着很深的体会,但往往会以大细节为代价——比如没有注意到自己走进的餐厅实际上是一个异常死亡陷阱。为达到这一效果,华尔登工作室评论的一个主题可能是某件对读者而言显而易见的事情,但下层宇宙的评论者自身却完全没有注意到这一点。但嘿,这只是个主题。你拿它做什么都可以。

用法

使用该主题前有几个步骤:
  1. 添加主题。
  2. 配置主题。
  3. 写个特殊的版头。

添加主题

要将这个主题添加到页面中,复制以下代码,最好是在页面以及其他任何CSS的顶部。

[[include :scp-wiki-cn:theme:inkblot]]

[[module CSS]]
:root {
  --inkblot-accent: transparent;
  --header-title: "华尔登工作室";
  --header-subtitle: "未知的鉴赏家";
}
[[/module]]

(你可以通过添加一个inksplotclass来制作一个类似上面的div。)

配置主题

要配置主题,只需改变三个CSS变量。—inkblot-accent(重点)决定了页面上的小气泡以及页面周围的东西的颜色。如果你不用这个,或是不改变上面的代码,默认的颜色是“透明(transparent)”,意味着那些小气泡以及其他东西都是不可见的。我有个请求:请不要用跟别的墨迹文章相同的重点颜色。这个页面使用的颜色是“珊瑚红(coral)”,所以这个已经用过了。选个别的颜色。没那么多页面会用这个主题,所以应该不难选择。(你可以通过来到页面底部,打开“+ 选项”,然后点击“反向链接”查看有哪些页面使用了该主题。)尽量选择一个你能看到黑色文字的颜色。如果你一定要选sense,记住要调整好评分按钮的字体颜色,将它调到可见,你可以自己想办法将墨迹版头跟它配合一下。其它两个变量是改版头文字的。

制作墨迹版头

墨迹主题隐藏了默认的页面标题,所以你得自己做一个。你在里面放什么都行,但我求你了,请用跟你实际的页面标题一样的文本。求你了。你在页面顶部已经看到过一个普通的墨迹版头了,而这里是另一个,只不过现在它被贴上了标签,每个HTML元素周围都有个外廓线。

.inkblot-header(版头)

.inkblot-title(标题)

什么

放这

都行

.inkblot-info(信息)

这里是这篇评论的简介
作者:蠢逼。
需要5分钟阅读。
⭐★★★★

.inkblot-image(图片)

pancakes.png

你能看到,希望吧,标题是由四个子部分组成的,每个子部分都包含了一两个字。我认为这是一种非常整洁又具有视觉吸引力的标题分割方式。信息部分应该要包含一些关于评论的信息。我建议——这是对什么的评论?谁写的?要花几分钟来阅读?以及被评论的东西有多好?图片是什么都行。把它变成评测人的照片可能很正常。可能这个主题是由煎饼制作的。我会避免让它成为被评测的东西的照片——把它留给文章本身就行了这个版头在桌面端会有三个部分,但在移动端,标题会独占一行,而信息部分和图片会占据下一行。你可以在下面看到以上版头是如何制作的,包括了四个标题分节。注意你可以不填其中一个标题栏,那个地方就会变成空白——这就是我给这一页标题所做的。

[[div class="inkblot-header"]]

[[div class="inkblot-title"]]
[[div class="title-1"]]

[[/div]]
[[div class="title-2"]]
**什么**
[[/div]]
[[div class="title-3"]]
放这
[[/div]]
[[div class="title-4"]]
//都行//
[[/div]]
[[/div]]

[[div class="inkblot-info"]]
这里是这篇评论的简介
作者:蠢逼。
需要5分钟阅读。
⭐★★★★

[[div class="inkblot-image"]]
[[image ##var(--c-symbol)|@@https://scp-wiki.wdfiles.com/local--files/theme:inkblot/pancakes.png@@##**##var(--c-keyword)|]]##**
[[/div]]
[[/div]]
[[/div]]

注意使用这种版头以及标题布局会带来一些问题。
  • 你需要注意你的标题长度,或者小心地把它分成四块。如果太长,其中一个标题栏可能会跳到下一行,让人读起来很混乱。我建议取一个简短的标题,可以很容易地分成四个大致相等部分的那种。
  • 如果你的标题太长,或者信息部分的文字太多,可能也会溢出或重叠。尽量不要添加太多文字。
你不一定要使用那个奇怪的标题栅格,或是信息栏,或是有张图片。你可以随心所欲地添加或删除他们。你甚至不需要使用.inkblot-header(版头)类——它只是会在桌面端将版头向左移开一半。下面是个没有标题栅格、没有信息、没有图片、也没有.inkblot-header(版头)的例子:

只是普通的标题。

[[div class="inkblot-title"]]
//只是//个**普通的**标题。
[[/div]]


那我怎么制作安布罗斯菜单呢?

事情是这样的。这个主题可能是为安布罗斯评论而设计的,但并没有考虑到安布罗斯菜单。为什么要这样?我信写作安布罗斯格式的一半乐趣在于制作自己的菜单。我喜欢看到每个安布罗斯格式的新菜单设计。所以这是你的事了——我希望看到你用这个主题来设计你自己的菜单。即使设计得很糟糕也没关系!需要的只是你能从中获得乐趣而已。如果我发了一个带有这个主题的菜单设计,不用骗我,直接告诉我你不想用它。你想。也想。而且,作为这个主题的设计师,我想做什么就做什么。要是你真的必须要一个,你可以在其它格式里复制一个菜单,然后稍微调一下颜色。但要知道,如果你这样做,我会尽全力给你一个down以及一些轻微的批评来击倒你。请不要这样做。用你自己的方式给你的文章加上一张安布罗斯餐厅菜单即可使你的文章被评定为安布罗斯餐厅的GoI格式。否则,一篇华尔登工作室的评论将会被加上故事的标签。

源代码

好了,这就是我要说的全部了,以下是源代码。
+ 显示源代码- hide block
css
/* Import fonts */
@import url('https://fonts.googleapis.com/css2?family=Libre+Baskerville:ital,wght@0,400;0,700;1,400&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Prata&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@300;600&display=swap');

/* Set the font size back to normal */
#page-content { font-size: 1rem; }
body { font-family: 'Libre Baskerville', serif; }

/* Hide the page title. I'll make my own damned title */
#page-title { display: none; }

/* - == === CUSTOM SYNTAX === == - */

/* The inkblot header contains the title and the info box thingy */
.inkblot-header {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  flex-wrap: wrap;
  position: relative;
  margin: 1rem 0 3rem;
  width: 100%;
  left: 0;
  max-width: none !important; /* override #page-content div */
}
@media (min-width: 768px) {
  /* On desktop, header expands over the top of the sidebar */
  .inkblot-header {
    width: calc(100% + 18 * 0.82rem);
    left: calc(-18 * 0.82rem);
  }
}

/* The inkblot title is a grid */
.inkblot-title {
  flex: 1 1 0;
  font-size: min(4rem, 10vw);
  font-family: 'Prata', serif;
  display: inline-grid;
  grid-template-areas:
    "one two"
    "three four";
  grid-gap: 0.1em;
  max-width: 100%;
  position: relative;
  margin: 1rem;
}
.inkblot-title::before {
  content: "";
  border-radius: 74% 26% 27% 77% / 74% 38% 73% 38%;
  background-color: var(--inkblot-accent, transparent);
  position: absolute;
  height: 40%; width: 100%; top: 50%; left: 50%;
  transform: translate(-50%, -50%) skewY(-6deg);
  max-width: min(50vw, 80%);
}
.inkblot-title > * { z-index: 1; white-space: nowrap; }
.inkblot-title .title-1 { grid-area: one; place-self: start end; }
.inkblot-title .title-2 { grid-area: two; place-self: start start; }
.inkblot-title .title-3 { grid-area: three; place-self: start end; }
.inkblot-title .title-4 { grid-area: four; place-self: start start; }
.inkblot-title p { margin: 0; line-height: 1em; text-align: center; }
/* Italics encroach to the right a bit, so push them back */
.inkblot-title > em, .inkblot-title .title-1 em, .inkblot-title .title-3 em {
  position: relative;
  left: -0.1em;
}

@media (max-width: 767px) {
  .inkblot-title {
    flex-basis: 100%;
  }
}

/* The info box is itself a flex container */
.inkblot-info {
  flex: 1 1 0;
  text-align: center;
  display: flex;
  flex-direction: row;
  justify-content: space-evenly;
  align-items: center;
}
.inkblot-info > p {
  min-width: 12.5rem;
}
/* On desktop, if the header overflows onto two rows, it will overlap the sidebar.
 * The max-width of the info thingy is reduced so it won't be wider than #page-content.
 * justify-content:flex-end on .inkblot-header pushes it to the right.
 * !important to override wikidot's default max-width on everything
 */
@media (min-width: 768px) {
  .inkblot-info {
    max-width: calc(100% - 18 * 0.82rem) !important;
  }
}

/* The image should only be styled fancy inside the info section.
 * It could be easily modified to allow a fancy image outside of the info
 * section, but I don't want to do that, because this arrangement is necessary
 * for proper line-wrapping on mobile, and the misformatted image acts as a
 * good indicator that something has gone wrong.
 */
.inkblot-info .inkblot-image { flex: 0 1 10rem; min-width: 10rem; }
.inkblot-info .inkblot-image img {
  border-radius: 65% 35% 43% 57% / 41% 35% 65% 59%;
  box-shadow: 0.5rem 0 var(--inkblot-accent, transparent);
  /* The height is 8rem, but I want it slightly bigger */
  height: 10rem; width: 10rem;
  margin: -1rem 0;
}

/* The inksplot class makes anything blobby */
.inksplot {
  border-width: 0.5rem;
  border-style: solid;
  border-color: var(--inkblot-accent); /* if no accent, will not override */
  padding: 2rem 4rem;
  margin: 1rem -3rem;
  border-radius: 38% 95% 94% 42% / 62% 56% 84% 75%;
}
/* On mobile, the inkblot is rectangular and boring to save space */
@media (max-width: 960px) and (min-width: 767px), (max-width: 650px) {
  .inksplot {
    padding: 1rem;
    border-radius: 5rem / 3rem;
    margin: 1rem -1rem;
  }
}

/* - == === DISTRIBUTED BLOBS === == - */

/* I want some blobs of colour down the page.
 * Thankfully, Wikidot gives me some extra dives to play with:
 * 6 in #container-wrap-wrap and 3 in #container.
 * They are #extra(c?)-div-[1-6]. That's a lot of selectors. */

#container-wrap-wrap, #container { position: relative; overflow: hidden; }

/* Based on CSS by Murray Smith (CC BY-SA 3.0)
 * https://stackoverflow.com/a/14451916/4958427 */

[id^=extra][id*=-div-] {
  position: absolute;
  z-index: -1;
  pointer-events: none;
  --content-width: min(1040px, 100vw);
  --content-margin: calc(50vw - var(--content-width) / 2);
  --blob-width: 30rem;
  --blob-radius: calc(var(--blob-width) * 0.67);
  background-color: var(--inkblot-accent, transparent);
  top: var(--top-offset);
  transform: rotate(var(--rotation))
             translate(calc(var(--sin-rotation) * 0.866 * var(--blob-radius) / 2),
                       calc(-1 * var(--cos-rotation) * 0.866 * var(--blob-radius) / 2))
             skewX(-30deg)
             scale(1, 0.866);
}
[id^=extra][id*=-div-]:before,
[id^=extra][id*=-div-]:after {
  content: '';
  position: absolute;
  background-color: inherit;
}
[id^=extra][id*=-div-],
[id^=extra][id*=-div-]:before,
[id^=extra][id*=-div-]:after {
  width: var(--blob-width); height: var(--blob-width);
  border-top-right-radius: 95%;
}
[id^=extra][id*=-div-]:before {
  transform: rotate(-135deg) skewX(-45deg) scale(1.414, 0.707) translate(0,-50%);
}
[id^=extra][id*=-div-]:after {
  transform: rotate(135deg) skewY(-45deg) scale(0.707, 1.414) translate(50%);
}

/* A lot of maths went into this.
 * To centre a triangle onto its container, it needs the following translation:
 * where A is the angle of rotation:
 * x:
 *   sin(N)
 *   * 0.866 (scale offset)
 *   * radius
 *   / 2
 * y:
 *   -1
 *   * cos(N)
 *   * 0.866 (scale offset)
 *   * radius
 *   / 2
 * Triangles have an order of symmetry around 120deg, so any angles above that are pointless.
 */
#extra-div-1,
#extra-div-3,
#extra-div-5,
#extrac-div-1,
#extrac-div-3 {
  right: calc(var(--blob-radius) * -2 + var(--content-margin));
}
#extra-div-2,
#extra-div-4,
#extra-div-6,
#extrac-div-2 {
  left: calc(var(--blob-radius) * -2 + var(--content-margin));
}
#extra-div-1 {
  --blob-width: 30rem;
  --top-offset: 500px;
  --rotation: 53.33deg; --sin-rotation: 0.802; --cos-rotation: 0.597;
}
#extra-div-2 {
  --blob-width: 30rem;
  --top-offset: 1300px;
  --rotation: 40deg; --sin-rotation: 0.642; --cos-rotation: 0.766;
}
#extra-div-3 {
  --blob-width: 20rem;
  --top-offset: 2100px;
  --rotation: 66.66deg; --sin-rotation: 0.918; --cos-rotation: 0.396;
}
#extra-div-4 {
  --blob-width: 15rem;
  --top-offset: 2900px;
  --rotation: 13.33deg; --sin-rotation: 0.231; --cos-rotation: 0.973;
}
#extra-div-5 {
  --blob-width: 40rem;
  --top-offset: 3700px;
  --rotation: 26.66deg; --sin-rotation: 0.448; --cos-rotation: 0.893;
}
#extra-div-6 {
  --blob-width: 25rem;
  --top-offset: 4500px;
  --rotation: 106.66deg; --sin-rotation: 0.958; --cos-rotation: -0.286;
}
#extrac-div-1 {
  --blob-width: 15rem;
  --top-offset: 5300px;
  --rotation: 93.33deg; --sin-rotation: 0.998; --cos-rotation: -0.058;
}
#extrac-div-2 {
  --blob-width: 10rem;
  --top-offset: 6100px;
  --rotation: 120deg; --sin-rotation: 0.855; --cos-rotation: -0.500;
}
#extrac-div-3 {
  --blob-width: 7rem;
  --top-offset: 6900px;
  --rotation: 80deg; --sin-rotation: 0.984; --cos-rotation: 0.173;
}

/* - == === HEADER === == - */

/* Replace the header background */
/* 324px is twice the height of the default header */
div#container-wrap { background: url(https://scp-wiki.wdfiles.com/local--files/theme%3Ainkblot/review-header.svg) top left/100% 648px no-repeat; }

#header { background: radial-gradient(circle at left 75px top 90px, var(--inkblot-accent, transparent) 42px, transparent 42.5px); }

/* Replace the header text */
/* Centre the text into the middle of the header */
#header h1, #header h2 { margin-left: 0; float: none; text-align: center; }
/* Move the subtitle down a smidge */
#header h2 { margin-top: 0.3rem; }
/* Hide the existing text */
#header h1 span, #header h2 span { font-size: 0; }
/* Style the new text */
#header h1 a::before, #header h2::before {
  color: #333;
  font-family: 'Montserrat', sans-serif;
  text-shadow: none;
}
/* Set the new text's content from variable */
#header h1 a::before {
  content: var(--header-title, "华尔登工作室");
  font-weight: 300;
}
#header h2::before {
  content: var(--header-subtitle, "未知的鉴赏家");
  font-weight: 600;
}

/* Hide the search box and tuck the button next to the login */
#search-top-box { top: 10px; transform: translateY(-7%); }
#search-top-box-form > input[type=text] { display: none; }
#search-top-box-form > input[type=submit] {
  background:
    url(https://scp-wiki.wdfiles.com/local--files/theme%3Ainkblot/search-solid.svg) 50%/0.8rem no-repeat,
    var(--inkblot-accent, transparent)
    !important /* don't revert on mouseover */;
  border: none;
  border-radius: 50%;
  font-size: 0;
  height: 1.5rem; width: 1.5rem;
}
#login-status { right: calc(10px + 2rem); color: #333a; }
#login-status a { color: #b01a; }

/* - == === LINKS === == - */

/* Make links be a darkened version of the accent colour. If not set, the accent colour is assumed to be red because that ends up looking similar to baseline Sigma links. */
a, a:visited, #side-bar a, #interwiki a {
  color: color-mix(in srgb, black 25%, var(--inkblot-accent, red));
  text-decoration: underline;
  text-decoration-style: dotted;
  text-underline-offset: 0.25rem;
}
:is(#side-bar a, #interwiki a):not(:hover) {
  text-decoration: none;
}

:is(a, a:visited, #side-bar a, #interwiki a):hover {
  text-decoration-style: solid;
}

/* - == === TOPBAR === == - */

#top-bar { display: flex; justify-content: center; right: 0; }
#top-bar a { color: #333d; }

/* - == === SIDEBAR === == - */

/* Move the side bar down, out of the way of the inkblot header */
@media (min-width: 768px) {
  #side-bar { top: 12rem; }
}

/* Make the sidebar look pretty */
/* Keep the side block colours - I like them */
#side-bar .side-block,
#interwiki .side-block {
  border: none;
  border-radius: 0.5rem;
  box-shadow: none;
}

#side-bar .heading,
#interwiki .heading {
  margin: 0.6rem 0 0.5rem;
  padding: 0;
  color: #000a;
  height: 1rem;
  display: flex;
  justify-content: space-around;
  align-items: center;
  border: none;
}
#side-bar .heading::before,
#side-bar .heading::after,
#interwiki .heading::before,
#interwiki .heading::after {
  content: "";
  height: 1px;
  box-sizing: border-box;
  border-bottom: 1px dotted #333;
  margin: 0.1rem 0.5rem 0;
  flex: 1 1 0;
}
#side-bar .menu-item > img,
#interwiki .menu-item > img {
  visibility: hidden;
}

/* !important to override wikidot style */
#top-bar .open-menu a {
  border-radius: 1px;
  border: none;
  border-left: 0.25rem solid var(--inkblot-accent, #333);
  border-right: 1px dotted #333;
}
@media (max-width: 767px) {
  #side-bar {
    background-image:
      radial-gradient(
        circle at left 10% top 90%,
        var(--inkblot-accent, white) 25%,
        transparent 25%
      ),
      linear-gradient(-75deg, #ccc 30%, white 30%);
    border-right: 4px dotted #444 !important;
    background-clip: padding-box;
  }
}

/* - == === RATING MODULE === == - */

.page-rate-widget-box { box-shadow: none; }
.page-rate-widget-box {
  display: inline-flex;
  justify-content: flex-end;
  align-items: center;
  border-radius: 0;
  border-width: 1px 0;
  border-style: dotted;
  border-color: #333;
  padding: 0.1rem;
  margin-right: 3rem;
}
.page-rate-widget-box .rate-points,
.page-rate-widget-box .cancel {
  background-color: transparent !important;
  border-radius: 0;
  border: none;
  color: #333 !important; /* override reset when bottom rating opened */
}
.page-rate-widget-box .rateup,
.page-rate-widget-box .ratedown {
  background-color: var(--inkblot-accent, transparent);
  border-radius: 50%;
  border: none;
  color: #333;
  height: 1.5rem; width: 1.5rem;
  position: relative;
  margin-left: 0.25rem;
}
.page-rate-widget-box .cancel {
  color: #333;
  height: 1.5rem; width: 1.5rem;
  position: relative;
}
.page-rate-widget-box .rateup a,
.page-rate-widget-box .ratedown a,
.page-rate-widget-box .cancel a {
  position: absolute;
  display: block;
  top: 0; left: 0; height: 100%; width: 100%;
  text-align: center; line-height: 1.5rem;
  color: #333;
  padding: 0;
  margin: 0;
  font-weight: bold;
}
.page-rate-widget-box .cancel a { color: transparent; }
.page-rate-widget-box .cancel a::after {
  content: "⤬";
  position: absolute;
  color: #333;
  top: 0; left: 0; height: 100%; width: 100%;
}
.page-rate-widget-box .rateup a:hover { background-color: limegreen; }
.page-rate-widget-box .ratedown a:hover { background-color: tomato; }
.page-rate-widget-box .cancel a:hover {
  color: transparent;
  background-color: transparent;
  border-radius: 0;
}

/* Info module compatibility */
/* More specific because will probably be imported before the info module */
#page-content .rate-box-with-credit-button {
  background: none;
  border-radius: 0;
  box-shadow: none;
  border-width: 1px 0;
  border-style: dotted;
  border-color: #333;
  display: flex;
  align-items: center;
}
.rate-box-with-credit-button .page-rate-widget-box {
  border: none;
}
.creditButton {
  height: 1rem;
  width: 1rem;
  background-color: var(--inkblot-accent, transparent);
  border-radius: 50%;
}
#page-content .creditButton p a {
  color: #333;
  border: none;
  line-height: 1rem;
  margin-left: 0;
}

/* - == === IMAGE BLOCKS === == - */

.scp-image-block {
  border: none;
  border-top: 1px dotted #333;
  box-shadow: none;
}
.scp-image-block .scp-image-caption {
  background: none;
  border-top: solid 0.25rem var(--inkblot-accent, transparent);
  padding-top: 0.5rem;
  font-weight: normal;
}
.scp-image-block img {
  padding: 0.5rem;
  box-sizing: border-box;
}
@media (min-width: 768px) {
  .scp-image-block.block-left {
    margin-left: -100px;
  }
}
@media (min-width: 1250px) {
  .scp-image-block.block-right {
    margin-right: -100px;
  }
}
@media (max-width: 600px) {
  .scp-image-block.block-left, .scp-image-block.block-right {
    float: none; clear: both; margin-left: auto; margin-right: auto;
  }
}

/* - == === OTHER STUFF === == - */

li, p {
  line-height: 1.6em;
  letter-spacing: 0.01em;
}

#page-content h1, #page-content h2, #page-content h3,
#page-content h4, #page-content h5, #page-content h6 {
  font-family: 'Libre Baskerville', serif;
  color: #333;
  margin: 1em 0 0.5em 0;
  letter-spacing: 0;
}
#page-content h1 {
  font-family: 'Prata', serif; font-size: 3rem; text-align: center;
}
#page-content h2 { font-size: 2rem; font-weight: bold; }

hr {
  margin: 3rem;
  height: 1rem;
  background: radial-gradient(circle at center, var(--inkblot-accent, transparent) 0.375rem, transparent calc(0.375rem + 0.5px));
  display: flex;
  justify-content: space-around;
  align-items: center;
}
hr::before, hr::after {
  content: "";
  height: 1px;
  box-sizing: border-box;
  border-bottom: 1px dotted #333;
  width: calc(50% - 3rem);
}

.page-tags span {
  border-top: 1px dotted #333;
}

.footnotes-footer {
  margin-top: 2rem;
}

#page-content {
  margin-bottom: 2rem;
}

#footer {
  background: transparent;
}

#footer a {
  color: black;
}

#breadcrumbs, .pseudocrumbs {
  display: flex;
  flex-direction: row-reverse;
  font-size: 0;
  margin-top: -1rem;
}
#breadcrumbs a, .pseudocrumbs a {
  font-size: 0.82rem;
  margin-left: 0.3rem;
}
#breadcrumbs a::before, .pseudocrumbs a:before {
  content: "«";
  margin-right: 0.3rem;
}

.licensebox {
  font-size: 0.82rem;
  font-family: verdana, arial, helvetica, sans-serif;
  margin: 1rem 0 -1.5rem;
}

span, a {
  word-break: normal;
}

blockquote, div.blockquote {
  border: none;
  border-left: thick solid var(--inkblot-accent, #eee);
  background: none;
}
Footnotes
  1. 1.安布罗斯格式的文章写出来是这样的:棘刺谷的安布罗斯餐厅Ambrose MakilingAmbrose Backdoor Soho
  2. 2.“霰弹枪式SCP”是指一篇文章没有主要的异常,而是有一系列较小的异常组成,而作者希望其中至少会有一个异常能引起你的兴趣,从而让你给他upvote。
  3. 3.详见安布罗斯中心页,‘写作指导’分页,‘特许经营选项’折叠。
页面版本:⁨0⁩, 最后编辑于: ⁨2020/10/4 04:50:47⁩ (⁨⁨2173⁩ 日前⁩), 现时评分: 16