:root { --theme-base: "black-highlighter"; --theme-id: "dark-liminal"; --theme-name: "Dark Liminal Theme"; --logo-image: url("http://backrooms-wiki.wikidot.com/local--files/component:theme/logo.svg"); --header-title: "The Backrooms"; --header-subtitle: "你曾经来过这里。"; --body-font: Inter, Noto Sans SC, Arimo, Verdana, Geneva, sans-serif; --header-font: Inter, Noto Sans SC, Franklin Gothic Medium, Franklin Gothic, ITC Franklin Gothic, Arial, sans-serif; --title-font: var(--header-font); --mono-font: Recursive, 幼圆, Noto Serif SC, Consolas, monaco, monospace; --white-monochrome: 18, 22, 32; --pale-gray-monochrome: 0, 4, 15; --light-gray-monochrome: 95, 95, 95; --gray-monochrome: 183, 186, 195; --black-monochrome: 230, 235, 239; --bright-accent: 115, 119, 129; --medium-accent: 183, 186, 195; --dark-accent: 115, 119, 129; --pale-accent: 115, 119, 129; --dark-gray-monochrome: 207, 207, 203; --light-pale-gray-monochrome: 11, 11, 11; --very-light-gray-monochrome: 40, 40, 40; --gradient-header: linear-gradient(to top, rgba(var(--pale-gray-monochrome)) 0%, rgba(var(--pale-gray-monochrome), 0.20) 100% ); --swatch-headerh1-color: var(--black-monochrome); --swatch-headerh2-color: var(--black-monochrome); --swatch-topmenu-border-color: var(--pale-gray-monochrome); --swatch-topmenu-bg-color: var(--pale-gray-monochrome); --link-color: 230, 23, 68; --hover-link-color: 230, 23, 68; --background-gradient-distance: 0rem; --diagonal-stripes: linear-gradient(transparent 0); } #skrollr-body { background-image: radial-gradient(circle, rgb(var(--pale-gray-monochrome)) 50%, transparent 0); background-repeat: repeat; background-size: 0.25em 0.25em; width: 100%; height: 7.5rem; } #side-bar .side-block div a img { filter: grayscale(100%); } #container { background-image: radial-gradient(circle, rgb(var(--pale-gray-monochrome), 0.40) 50%, transparent 0); background-size: 0.25em 0.25em; background-repeat: repeat; background-attachment: fixed; } div#page-options-bottom-2 > a, div#page-options-bottom > a { border-radius: 0em; -moz-border-radius: 0em; border: none; } div#page-options-bottom-2 > a:active, div#page-options-bottom-2 > a:hover, div#page-options-bottom > a:active, div#page-options-bottom > a:hover { border: none; } #header, #top-bar { background-attachment: scroll; } #header { background-image: none; } #header::before { content: ""; position: absolute; height: 100%; width: 100%; left: 0; top: 0; background-image: var(--logo-image); background-size: auto 16rem; background-position: center; background-repeat: no-repeat; opacity: 0.4; } #header h1, #header h1 a { position: absolute; top: 1rem; margin: 0; width: 100%; display: flex; justify-content: center; z-index: 0; } #header h2, #header h2 span, #header h2 span::before { position: absolute; top: 2rem; margin: 0; width: 100%; display: flex; justify-content: center; } #header h1 a::before, #header h2 span::before { text-shadow: .063rem 0.1rem 0.1rem #0c0c0c; } #footer{ color: rgb(var(--pale-gray-monochrome)); } a.newpage { background: transparent; text-decoration: none } a.newpage { color: rgb(var(--newpage-color)) } #search-top-box-input:hover, #search-top-box-input:focus { background: rgba(var(--medium-accent), .25); } #top-bar div.top-bar > ul > li > a, #top-bar div.mobile-top-bar > ul > li > a { color: rgb(var(--black-monochrome)); } #top-bar div.top-bar > ul > li > a:hover, #top-bar div.mobile-top-bar > ul > li > a:hover { color: rgb(--pale-gray-monochrome)); } #top-bar div.top-bar > ul > li:hover > a, #top-bar div.mobile-top-bar > ul > li:hover > a { color: rgb(var(--pale-gray-monochrome)); } #login-status { color: rgb(var(--black-monochrome)); } #login-status a { color: rgb(var(--black-monochrome)); } #login-status ul a { color: rgb(var(--pale-gray-monochrome)); } #account-topbutton { color: rgb(var(--black-monochrome)); } table.wiki-content-table th { background-color: rgb(var(--pale-gray-monochrome)) !important; color: rgb(var(--black-monochrome)); border-color: rgb(var(--black-monochrome)); } .scp-image-block { box-shadow: 0 0.2rem 0.3rem rgba(0,0,0,.25); } blockquote, div.blockquote { box-shadow: 0 0.2rem 0.3rem rgba(0,0,0,.25); } .styled-quote { background-color:rgb(var(--pale-gray-monochrome)); border-left: 0.5rem solid rgba(var(--gray-monochrome)); padding: 0.1rem 1rem; margin: 0.5rem 0 0.5rem 0.25rem; box-shadow: 0 0.2rem 0.3rem rgba(0,0,0,.25); } .dark-styled-quote { background-color:rgb(var(--gray-monochrome)); border-left: 0.5rem solid rgba(var(--pale-gray-monochrome)); color:rgb(var(--white-monochrome)); padding: 0.1rem 1rem; margin: 0.5rem 0 0.5rem 0.25rem; box-shadow: 0 0.2rem 0.3rem rgba(0,0,0,.25); } .dark-styled-quote a{ color: rgb(var(--swatch-menubg-medium-color)); } .darkblock { background-color:rgb(var(--white-monochrome)); padding: 0.01rem 1rem; margin: 0.5rem 0 0.5rem 0.25rem; box-shadow: 0 0.2rem 0.3rem rgba(0,0,0,.25); color: rgb(var(--black-monochrome)); } .lightblock { background-color:rgb(var(--gray-monochrome)); color:rgb(var(--white-monochrome)); padding: 0.01rem 1rem; margin: 0.5rem 0 0.5rem 0.25rem; box-shadow: 0 0.2rem 0.3rem rgba(0,0,0,.25); } .darkerblock { background-color:rgb(var(--pale-gray-monochrome)); padding: 0.01rem 1rem; margin: 0.5rem 0 0.5rem 0.25rem; box-shadow: 0 0.2rem 0.3rem rgba(0,0,0,.25); color: rgb(var(--black-monochrome)); } .darkblock a { color: rgb(var(--swatch-menubg-medium-color)); } /* sd banner colours */ .sd-container { --sd-border:var(--white-monochrome); --sd-text:222,222,222; --sd-symbol:var(--sd-text); --sd-bullets:var(--sd-text); --sd-symbol: var(--sd-border) !important; --sd-symbol-secondary: 255, 255, 255; }
生存难度:生存難度:
等级等級 死区
- 环境危害
- 机关重重
- 大量实体
Level KP-41 是后室KP层群的第+41层。
描述
Level KP-41 为一个无限大小的墓地,内部具有森林和山丘。层级内有大量的墓碑与机关,每种墓碑造成的效果均不同,详情见后文。层级内部拥有昼夜循环,时间与前厅一致。层级内部始终有 WiFi 。
在切入时进入的地点总是小木屋,小木屋仅有1层,内部有1张床和3瓶杏仁水,具有一个无法打开的大门,且房屋无法被破坏。在流浪者进入第一个夜晚时,会立刻晕厥,不会对人体造成任何伤害。在第二天醒来时总是出现在层级各处,但同时晕厥的人会出现在同一处,使得建立基地成为可能。层级内部除了小木屋,有特殊的孤立性质,除非同时晕厥醒来的流浪者,其他流浪者无法互相遇见。小木屋内没有孤立性质。
除此之外,层级内部还有大量鬼火,鬼火类似大型火花,鬼火会大量在层级中随机游荡,似乎会试图接近流浪者,在碰到流浪者会导致流浪者全身起火,而在互相碰撞时会产生爆炸,若碰到地面则会产生大范围的着火。鬼火的杀伤力是不定的,且少数鬼火会追逐流浪者。
层级夜晚有时将被带有猩红色的雾气笼罩,雾气对流浪者的视觉有一定影响,吸入雾气会导致流浪者逐渐疲惫,但是杏仁水可以缓解这一症状。且雾气会一定程度的加强实体的速度和战斗力,雾气的浓度与持续时间不固定,但是雾气浓度越高实体加强程度也更多。
该层级的墓碑旁边与山顶会随机出现杏仁水、火盐、皇家口粮、幸运豆奶、罐装龙肉、瓶中闪电等大量物资1。同时墓碑旁边有时会出现从前厅切入的祭品。且层级内部经常会听到关于前厅人扫墓时的谈话,内容通常与流浪者消失有关。若有水或玻璃,还可倒影出人影,且倒影出的人影都为流浪者在前厅中熟悉的人。这些谈话与倒影在每个人眼中都是不同的。
墓碑类型
Level KP-41 内部具有大量类型不同的墓碑,不同类型的墓碑会产生不同的效果。且这些墓碑通常都会带有一定的装饰,或是多个连体,使得层级内部的墓碑不会重复。

3块并排的圆角墓碑。
最常见的墓碑,在夜晚,大量常规实体会从圆角墓碑中出现,如猎犬、肢团、钝人、爆酸者、死亡飞蛾、笑魇。若试图靠近圆角墓碑也会在周边出现大量上述实体,不会对流浪者产生特殊效果。

一块单独出现的十字架墓碑。
少见却及其危险的墓碑,会控制流浪者的精神,并让流浪者一直靠近,且靠的越近受到的精神危害越高,当距离不到1米时,十字架墓碑将会爬出一只特有实体守墓人。

一块带有边的方状墓碑。
比较常见的墓碑,该墓碑会释放鬼火,但与正常鬼火不同的是,方状墓碑释放的鬼火会主动靠近流浪者,且杀伤力更加强大。在夜晚还会不断生成层级特有实体。
与圆角墓碑相同形状,但是冒着少量金光2。极其稀有,其周围有一只守墓者和大量墓地蠕虫与木乃伊。其上面会映出不同层级的画面,但对于每个人,看到的画面可能是不同的。
机关类型
Level KP-41 内部具有较多类型不一的机关分布在不同地形,流浪者在穿越时应谨慎避免触发机关。
内部有着大量高度不等的坑,其上面有树叶作为掩饰,高度在3米至10米不等,部分坑的底部会隐藏少量实体,或是拥有尖锐物。
任何两颗树都有可能连接绊线,其难以被发现,在触发时会导致左右的树木倒塌,严重时会导致连锁反应。
草地上遍布捕兽夹,其颜色明显且会反光,会夹住踩到捕兽夹流浪者的脚,部分捕兽夹尖头处带毒,严重可导致流浪者死亡。
树木上有可能会连接硬度极高的铁棍,其绑上一颗大型摆球,半径5米,会不断进行摆动,多数球体距离地面距离短3。
在草地上行走时,部分地面可能周围会突然升起铁网,将流浪者困如其中,且铁网无法被损坏,铁网会不断上升至20-30米,部分铁网带电,铁网上升速度较慢4。
在靠近山丘时,有时会有滚石从山顶滚落,滚石半径在3-8米左右,且一次通常不止滚下一颗滚石,流浪者会被滚石碾死5。
在山丘接近顶端的部分可能会隐藏滑坡,其表面极度光滑,会导致走到其上方的流浪者打滑摔至山顶。
在山顶有大量石头,这些石块看起来表面平滑,而事实上具有大量细小的尖刺6,流浪者触碰便会大范围皮肤破裂与流血。
还有许多的机关未记录,仅记录最经常出现的。
气象事件
Level KP-41 内部偶尔会出现特殊的天气。
天气类型 | 气象描述 | 发生频率 |
---|---|---|
风暴 | 该层级内部却会有风暴,风暴会毫无征兆迅速大量产生并且速度较快7,且会带来大量墓地蠕虫和木乃伊。 | 较常见,约5天一次。 |
暴雨 | 会大量降具有杏仁水作为雨水,且会大量产生闪电,偶尔会出现球形闪电。 | 少见,约12天出现一次。 |
地震 | 大范围的震级较强地震,将会导致触发所有的触发式机关与所有的墓碑。 | 极少见,可能60天才会出现一次。 |
实体
Level KP-41 内部充斥着大量的实体,除了猎犬、肢团、钝人、爆酸者、死亡飞蛾、笑魇等常规实体外,层级内部也有着独特的实体。
守墓人
一种大型木乃伊形实体,高度2.1米,会尝试攻击流浪者,在此期间会不断追逐流浪者,被攻击后流浪者将受到一定程度的伤害。在攻击到流浪者或5-8分钟未攻击到流浪者时,其会大幅度加快速度,抓住流浪者,并且对流浪者注射能起到麻醉和催眠效果的汁液。被麻醉后的流浪者无法动弹,但意识依旧存在,且全身如同被电击,充满了酥麻与酸痛的感觉。
墓地蠕虫

一只较短的墓地蠕虫。
一种层级特有蠕虫形实体,会尝试强制钻入流浪者的体内,且其口部有尖锐的牙齿,具有轻微毒性。被攻击后的流浪者会头晕、呕吐、视力模糊、出现幻觉,严重可导致晕厥。而若被墓地蠕虫钻入体内的流浪者将会在1-2小时后死亡。
木乃伊
一种小型木乃伊形实体,高度1.7米,攻击流浪者会导致流浪者感受到饥饿与口渴,饥饿和口渴程度因人而异,且任何进食均无法缓解。持续时间10分钟左右。多数木乃伊会携带铁棒、铁锤、锁链等钝器。少数木乃伊会携带刀剑等锐器,或是投掷尖锐石头、长矛、飞刀,使得其战斗力大幅度提升。
基地、前哨和社区
- 该层级无法建立大型基地、前哨或社区。但不排除有小型团体,在层级内部建立基地、前哨或社区的可能。
入口与出口
入口
- 在任何一个层级找到一块突兀的墓碑,切入这块墓碑即可进入 Level KP-41 。
出口
- 在任意方向行走极长的路程后,会遇到上述的金光墓碑,切出可以到达画面对应层级。目前发现的层级如下:
主层级
- Level KP-0
- Level KP-11
- Level KP-15
- Level KP-20
- Level KP-31
- Level KP-33
- Level KP-48
- Level KP-56
- Level KP-80
- Level KP-404
隐秘层级
还有部分可以到达的层级未记录。
附录
2023/9/18
今天我和我的队员们都来到了这里,共10人,我是探险者1号,即队长。我们挤在屋子里,等待第二天的到来。
2023/9/19
不知道是不是错觉,我视乎听见了我家里人的对话,甚至在一个小水坑中,我勉强看到了他的脸。刚刚我的一位成员突然被绊倒了,随后周围的树倒了下来,我们往后退了几步,可是还是有2人来不及躲闪,被3棵树木砸得血肉模糊。我们又差点被坑与捕兽夹所害,夜晚快到了。
夜晚到了,我们周围的6块圆角墓碑冒出了一堆实体,我们只能不断奔跑,突然,我们的前方被一座山所挡住,看着逐步逼近的、黑压压的一团实体,我们决定:爬到山顶。但爬的最快的人,突然就从我上方滑了下来,我第一反应不是接住他,而是躲开,他直接被地下的实体撕成了碎片,是我害死了他,掉进实体堆里的那一声“啊——”,我永远都忘不掉。我没有办法,我们的周边已经全被实体所包围,我从背包中拿出找到的一些火盐,洒下去,再点燃了一根木棍,丢下去。下方瞬间爆炸,变成一片火海。
2023/9/20
终于熬到白天了,其实这里白天没那么危险,昨晚我们消耗完了所有的火盐,只剩下一瓶瓶中闪电。我建议各位2人小组,分头探索,留有大量物资的一人留在这。我们刚走不远,就听到了剧烈的爆炸声,看着满地的火焰和他的灰烬,我们丢失了一切物资,我瘫坐在地面,缺失了这些物资,我们不可能挺过夜晚。最终我们决定再次爬山,这次很幸运,我们顺利的爬到了山顶,获得了一堆物资。一个人在探索的过程中,遇到了十字架墓碑,他被精神控制,我们也不敢靠近,随后守墓者钻出来,把他打下了山,然后摔倒了山脚的坑。
夜晚还是来了,我们剩余的5人再也不敢乱动,我们在山顶小心的探索着,在把整座山探完后,突然大量鬼火飞出,我们凑在一起,等到鬼火快过来时再跑走,鬼火瞬间爆炸,无人受伤,之后我们的任务就是躲避鬼火,山脚的实体多数都被滑坡残害,我们只要对付寥寥无几的实体。这一晚无事发生.
2023/9/21
我们下山途中,意外触发了圆角墓碑,我建议使用火盐,然而其他人都认为可以直接逃跑,我没办法,就在逃跑途中,实体越来越多,又有一人掉入坑中。看到那场面,想到背后的实体,我甚至没法犹豫,只能放弃他逃跑,实体进入了坑中,我们得以生存。
晚上时,雾气格外浓烈,一块方状墓碑钻出了一堆的墓地蠕虫和木乃伊,我们没有犹豫,大量使用火盐,最终勉强度过了夜晚。
2023/9/22
早上时,雾气已经散去,忽然,一把飞刀飞来,刺穿了一人的大脑,我们3人再次死命的逃跑,同以往一样,但是已经死了7人,我忽然丧失了希望,连续行走了多少天,可是还是没有找到出口。就在我绝望之时,旁边滚下8颗巨石,也只能再次逃跑,又一人死了。这本日记不会再记录了,由于仅有2人,我们换做了录音设备,以方便记录和探索。
红色字体为探险者队长,蓝色字体为探险者4号。省略无关的内容。
00:00
好的,这台设备可以正常使用,那么说一下我的目标吧,我们分头行动,用语音联系。
好的,那我先走了。
00:05
这里还真是烦人,鬼火到处都是。
确实,队长,小心点机关,别再出事了。
我们之前都路过五个出口了,但凡当时返回,也不至于这样。
希望我们运气能好一点。
00:06
谢谢提醒,你也注意点。
一块金色墓碑都没有,况且找到后还得考虑目的地安不安全。
现在是白天,不算太危险。但还是得远离墓碑。
我现在周围全是墓碑,只能硬过了。
00:09
穿过了,没有十字架墓碑,实体已经被甩开了
别那么鲁莽,小心点!
这墓碑得找多久啊?
只能靠运气了。
00:15
好无聊啊。
确实是,层级内部的景象都看习惯了。
我有种预感,我快到了。
想啥呢?
00:25
我找到了!我用了一堆火盐,实体已经全炸飞了。
你这什么运气……上面的画面是啥?
是……我在前厅的卧室。
没听说过,别急!
00:29
不知道,管他呢,我先走了。你往反方向走就行了,我每一段路都放了一瓶杏仁水,你可以找找。
00:30
[切出声]
[连接已丢失]
好吧。
01:12
我找到了,但是这明明是Level KP-15啊,你怎么这么迷糊。
[哭泣声]
01:14
你还在吗?奇怪,连接已经没了,哪怕到了KP-15也不应该啊。
01:54
我又找到了一块,是Level KP-33的,终于可以逃离这个地狱了。
[切出声]
01:56
[[span style="color:blue"]]我安全离开了。
[连接停止]
目前这位丢失的探险队队长无法连络,推测已经死亡待验证。
« Level KP-40 | Level KP-41 | Level KP-42 »
:root { --lh-red: #c0392b; --lh-blue: #2980b9; --lh-green: #27ae60; --lh-dark-green: #16a085; --lh-purple: #8e44ad; --lh-orange: #e67e22; --lh-yellow: #f1c40f; --lh-paper-bg: 255, 251, 240; --lh-string-color: 192, 57, 43; --lh-book-color: var(--gray-monochrome); --lh-tape-color: 90,90,90,0.3; --lh-white-bg: 249,249,249; --lh-dark-bg: 50, 50, 50; --lh-highlighter: var(--bright-accent); --lh-border-color: var(--gray-monochrome); --lh-wiki-note-color: var(--bright-accent) } /** * 旧代码合集 * 为了向下兼容而保留 */ .grid-container{display:flex;flex-direction:row;flex-wrap:wrap;width:100%}.grid-container,.grid-container [class*=grid]{box-sizing:border-box}[class*=grid]{padding:5px}.grid{width:100%}.grid-large{width:75%}.grid-big{width:50%}.grid-medium{width:33.33%}.grid-small{width:25%}@media screen and (min-width:768px){.wd-grid-large{width:75%}.wd-grid,.wd-grid-big{width:50%}.wd-grid-medium{width:33.33%}.wd-grid-small{width:25%}}.text-hover-hide{opacity:0;transition:opacity .3s}.text-hover-hide:hover{opacity:1}.text-block-hide{background:rgb(var(--black-monochrome));color:rgb(var(--black-monochrome));transition:background .3s}.text-block-hide:hover{background:0 0}.text-blur-hide,.text-blur-hover-hide{filter:blur(.3rem);-webkit-filter:blur(.3rem) transition: blur .3s}.text-blur-hover-hide:hover{filter:blur(0);-webkit-filter:blur(0)}.lyric-box{text-align:center;font-size:1.05rem;display:flex;flex-direction:column;flex-wrap:wrap;justify-content:center}.lyric-box p{margin:1.5em auto}.lyric-box.with-bigger-line p{margin:3em auto} /** * 便签纸 * notepaper */ .notepaper { background: linear-gradient(rgb(var(--lh-paper-bg)) 95%, #ddd 0); line-height: 2em; background-size: 100% 2em; background-attachment: local; border: 2em solid rgb(var(--lh-paper-bg)); box-shadow: 0 0.1rem 0.3rem rgba(0,0,0,0.2); padding: 0; margin: 1em auto; box-sizing: border-box; position: relative } .notepaper p { margin: 0; font-size: 1.05rem; letter-spacing: 0.1rem; line-height: inherit } .notepaper.narrow, .notepaper.wide { width: 90% } @media screen and (min-width:768px){ .notepaper.narrow { width: 50% } .notepaper.wide { width: 75% } } .notepaper.tight { border-width: 1rem; border-left-width: 1.2rem; border-right-width: 1.2rem; line-height: 1.8em; background-size: 100% 1.8em; font-size: 13px } .notepaper.with-string::before { content: ''; width: 0.5em; height: 6rem; background: rgb(var(--lh-string-color)); top: -2rem; right: -1rem; display: block; position: absolute; box-shadow: 0 0.1em 0.2em rgba(0,0,0,0.2); clip-path: polygon(-100% -100%,100% 0%,100% 100%,50% 98%,0% 100%); } .notepaper.with-tape::before { content: ''; border: 1px solid #ddd; background: rgba(var(--lh-tape-color)); width: 1.5em; height: 4em; transform: rotate(45deg); display: block; position: absolute; top: -3em; left: -1.8em } .notepaper.tight.with-string::before { top: -1rem; right: -0.25rem; } .notepaper.tight.with-tape::before { top: -2.5em; left: -1.3em } .notepaper.page { min-height: 36em; counter-increment: page; display: flex; flex-direction: column; justify-content: space-between } @media screen and (min-width:768px){ .notepaper.page { width: 70% } } .notepaper.page:after { content: counter(page); display: block; text-align: center } .notepaper-group { counter-reset: page; } .book-pattern { display: flex; flex-wrap: wrap; flex-direction: row } .book-pattern .notepaper.page:not(.notepaper > .notepaper) { width: 100% } @media screen and (min-width: 768px) { .book-pattern .notepaper.page:not(.notepaper > .notepaper) { width: 50% } } .book-wrapper { background: rgb(var(--lh-book-color)); padding: 0.5rem; box-shadow: 0 0.1rem 0.2rem rgba(0,0,0,0.2); border-radius: 5px; margin: 1rem auto } @media screen and (min-width: 768px) { .book-wrapper .notepaper { margin: 0 } } /** * 文字修饰 */ .text-highlighted { position: relative } .text-highlighted::before { content: ""; position: absolute; height: 0.9em; bottom: 2px; left: -2px; width: 105%; z-index: -1; background-color: rgb(var(--lh-highlighter)); opacity: .6; transform: skew(-15deg); transition: opacity .2s ease; border-radius: 3px 8px 10px 6px; transition: 0.1s ease background-color; } .text-underlined { text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 2px; text-decoration-color: rgb(var(--lh-highlighter)) } .text-wavy { text-decoration: underline wavy; text-underline-offset: 4px; text-decoration-color: rgb(var(--lh-highlighter)) } .text-circled, .text-squared { display: inline-block; border: 2px solid rgb(var(--lh-highlighter)); border-radius: 100%; box-sizing: border-box } .text-squared { border-radius: 0 } .text-shadow { text-shadow: 0.075em 0.075em 0 rgb(var(--lh-highlighter)) } .text-highlighted.td-red::before { background: var(--lh-red) } .text-circled.td-red, .text-squared.td-red { border-color: var(--lh-red) } .text-underlined.td-red, .text-wavy.td-red { text-decoration-color: var(--lh-red) } .text-highlighted.td-blue::before { background: var(--lh-blue) } .text-circled.td-blue, .text-squared.td-blue { border-color: var(--lh-blue) } .text-underlined.td-blue, .text-wavy.td-blue { text-decoration-color: var(--lh-blue) } .text-highlighted.td-green::before { background: var(--lh-green) } .text-circled.td-green, .text-squared.td-green { border-color: var(--lh-green) } .text-underlined.td-green, .text-wavy.td-green { text-decoration-color: var(--lh-green) } .text-highlighted.td-darkgreen::before { background: var(--lh-dark-green) } .text-circled.td-darkgreen, .text-squared.td-darkgreen { border-color: var(--lh-dark-green) } .text-underlined.td-darkgreen, .text-wavy.td-darkgreen { text-decoration-color: var(--lh-dark-green) } .text-highlighted.td-purple::before { background: var(--lh-purple) } .text-circled.td-purple, .text-squared.td-purple { border-color: var(--lh-purple) } .text-underlined.td-purple, .text-wavy.td-purple { text-decoration-color: var(--lh-purple) } .text-highlighted.td-yellow::before { background: var(--lh-yellow) } .text-circled.td-yellow, .text-squared.td-yellow { border-color: var(--lh-yellow) } .text-underlined.td-yellow, .text-wavy.td-yellow { text-decoration-color: var(--lh-yellow) } .text-highlighted.td-orange::before { background: var(--lh-orange) } .text-circled.td-orange, .text-squared.td-orange { border-color: var(--lh-orange) } .text-underlined.td-orange, .text-wavy.td-orange { text-decoration-color: var(--lh-orange) } /* 隐藏文字 */ .text-blank { color: rgba(0,0,0,0) } .text-block { background: rgb(var(--black-monochrome)); color: rgb(var(--black-monochrome)); } .text-blur { filter: blur(0.3em); -webkit-filter: blur(0.3em) } .text-hoverback, .text-selectback { transition-duration: 0.3s; transition-property: background, transform, color } .text-blank.text-hoverback:hover, .text-blank.text-selectback::selection, .text-blank.text-selectback *::selection { color: rgb(var(--black-monochrome)) } .text-block.text-hoverback:hover { background: transparent!important } .text-block.text-selectback::selection, .text-block.text-selectback *::selection { color: rgb(var(--white-monochrome, 255, 255, 255)) } .text-blur.text-hoverback:hover { filter: blur(0)!important; -webkit-filter: blur(0)!important } /** * 附加项 */ .with-border, .with-box-style { border: 1px solid rgb(var(--bright-accent)) } .with-border-dark { border: 1px solid rgb(var(--black-monochrome)) } .with-border-light { border: 1px solid rgb(var(--white-monochrome)) } .with-border-thick { border-width: 2px } .with-shadow-sm { box-shadow: 0 0 0.1em rgba(0,0,0,0.2) } .with-shadow { box-shadow: 0 0.1em 0.2em rgba(0,0,0,0.2) } .with-shadow-lg { box-shadow: 0 0.15em 0.3em rgba(0,0,0,0.2) } .with-shadow-xl { box-shadow: 0 0.2em 0.5em rgba(0,0,0,0.2) } .with-shadow-xxl { box-shadow: 0 0.25em 0.8em rgba(0,0,0,0.2) } .with-padding, .with-box-style { padding: 0.25em 1em } .with-p-sm { padding: 0.125em 0.5em } .with-p-lg { padding: 0.5em 2em } .with-margin, .with-box-style { margin: 1em auto } .with-m-sm { margin: 0.5em auto } .with-m-lg { margin: 2em auto } .with-narrow-width { width: 90%!important; margin-left: auto; margin-right: auto } @media screen and (min-width: 768px) { .with-narrow-width { width: 75%!important } } [class*="with-bg-"], [class*="with-bg-"] h1 { color: #fff!important } .with-bg-red { background: var(--lh-red)!important } .with-bg-blue { background: var(--lh-blue)!important } .with-bg-green { background: var(--lh-green)!important } .with-bg-darkgreen { background: var(--lh-dark-green)!important } .with-bg-yellow { background: var(--lh-yellow)!important } .with-bg-orange { background: var(--lh-orange)!important } .with-bg-purple { background: var(--lh-purple)!important } /** * 删除类 */ .offwith-shadow { box-shadow: none!important } .offwith-border { border: none!important } .offwith-padding, .offwith-pam { padding: 0!important } .offwith-margin, .offwith-pam { margin: 0!important } .offwith-width-limit { width: auto!important; margin-left: auto!important; margin-right: auto!important } div[class*="grider"].offwith-grid-gap { grid-gap: 0!important } /** * 网格布局 */ /* Gridder 容器 */ div[class*="gridder"] { display: grid; box-sizing: border-box; grid-gap: 1rem; padding: 0 } div[class*="gridder"] * { box-sizing: border-box } .gridder, .gridder-col-2 { grid-template-columns: 1fr 1fr; } .gridder-col-3 { grid-template-columns: repeat(3, 1fr); } .gridder-col-4 { grid-template-columns: repeat(4, 1fr); } @media screen and (min-width: 768px) { .pc-gridder, .pc-gridder-col-2 { grid-template-columns: 1fr 1fr; } .pc-gridder-col-3 { grid-template-columns: repeat(3, 1fr); } .pc-gridder-col-4 { grid-template-columns: repeat(4, 1fr); } } .spanner, .spanner-2 { grid-column-start: span 2; } .spanner-3 { grid-column-start: span 3; } /** * 告示组件 */ .signblock, .signblock-dark, .signblock-warn { margin: 1rem auto; box-shadow: 0 0.1rem 0.3rem rgba(0,0,0,0.4); background: rgb(var(--lh-white-bg)); font-size: 1.05rem; padding: 2rem } @media screen and (min-width: 768px) { .signblock, .signblock-dark, .signblock-warn { width: 75% } } .signblock-dark, .signblock-dark h1 { background: rgb(var(--lh-dark-bg)); color: #fff } .signblock-warn, .signblock-warn h1 { background: var(--lh-red); color: #fff } .signblock h1, .signblock-dark h1, .signblock-warn h1 { text-align: center; font-size: 2rem; margin: 0; font-weight: 700 } .signblock-img { display: flex; flex-direction: row; justify-content: center } .signblock-img img { width: 8em } .signblock-footer { font-size: 0.9em; text-align: center; margin: 0.5rem 0; font-weight: bolder; display: block } /** * 报告 */ .reportblock, .reportblock-dark { border: 2px solid rgb(var(--lh-border-color)); box-shadow: 0 0.1rem 0.2rem rgba(0,0,0,0.3); background: rgb(var(--white-monochrome)); padding: 0.8rem 1.5rem; padding-bottom: 0.4rem; margin: 1.5rem auto; margin-bottom: 1rem; position: relative } .reportblock hr, .reportblock-dark hr { background-color: rgb(var(--lh-border-color)); margin-left: -1.5rem; margin-right: -1.5rem } .reportblock h1:first-child, .reportblock-dark h1:first-child { position: absolute; top: -1rem; left: 1.5rem; font-size: 110%; font-weight: 600; background: rgb(var(--lh-border-color)); color: #fff; padding: 0.2rem 0.5rem; margin: 0; } .reportblock-dark, .reportblock-dark h1 { border-color: rgb(var(--lh-white-bg)); background: rgb(var(--lh-dark-bg)); color: #fff } .reportblock-dark hr { background-color: rgb(var(--lh-white-bg)); } /* 更好的折叠框 */ .bettercollap { margin: 1em 0; } .bettercollap .collapsible-block { width: auto; overflow: hidden; border: 1px solid rgb(var(--lh-border-color)) } .bettercollap .collapsible-block-content, .bettercollap .collapsible-block-link { background: rgb(var(--white-monochrome)); padding: 0.5em } .bettercollap .collapsible-block-content { padding-left: 1em; padding-right: 1em } .bettercollap .collapsible-block-link { color: rgb(var(--lh-border-color)); background: rgb(var(--white-monochrome)); transition: .3s; display: block; } .bettercollap .collapsible-block-link:hover, .bettercollap .collapsible-block-unfolded .collapsible-block-link, .styledcollap.bettercollap .collapsible-block-link { color: rgb(var(--white-monochrome)); background: rgb(var(--lh-border-color))!important; text-decoration: none } .bettercollap .collapsible-block-link:hover a { color: rgb(var(--white-monochrome)) } .bettercollap .collapsible-block-link::before { content: "\25BC"; display: inline-block; margin-right: 0.5em; transform: rotate(-90deg) scale(0.9) } .bettercollap .collapsible-block-unfolded .collapsible-block-link::before { transform: rotate(0) scale(0.9) } .bettercollap .collapsible-block + .collapsible-block { border-top: none } .styledcollap.bettercollap .collapsible-block { border-radius: 2px; box-shadow: 0 0.1rem 0.2rem rgba(0,0,0,0.3) } .styledcollap.bettercollap .collapsible-block-content { background-color: rgb(var(--pale-gray-monochrome)); border-width: 3px } .styledcollap.bettercollap .collapsible-block-link:hover { background: rgba(var(--lh-border-color),0.95)!important; } /** * 提示框 */ .infoblock { color: #f1f1f1; font-weight: bold; background: #424242; padding: 5px 5px 5px 5px; border-radius: 4px; margin: -0.5rem 0 1rem 0; display: block; width: fit-content; padding-right: 25px; } .infoblock::before { content: "ⓘ " } /** * 单页迭代 */ .offset-page:not(:target), .offset-page:target ~ div#u-default-page { display: none } .offset-page:target { display: block }
What this is
A bunch of miscellaneous CSS 'improvements' that I, Croquembouche, use on a bunch of pages because I think it makes them easier to deal with.
The changes this component makes are bunch of really trivial modifications to ease the writing experience and to make documenting components/themes a bit easier (which I do a lot). It doesn't change anything about the page visually for the reader — the changes are for the writer.
I wouldn't expect translations of articles that use this component to also use this component, unless the translator likes it and would want to use it anyway.
This component probably won't conflict with other components or themes, and even if it does, it probably won't matter too much.
Usage
On any wiki:
[[include :scp-wiki:component:croqstyle]]
This component is designed to be used on other components. When using on another component, be sure to add this inside the component's [[iftags]] block, so that users of your component are not forced into also using Croqstyle.
Related components
Other personal styling components (which change just a couple things):
Personal styling themes (which are visual overhauls):
CSS changes
Reasonably-sized footnotes
Stops footnotes from being a million miles wide, so that you can actually read them.
.hovertip { max-width: 400px; }
Monospace edit/code
Makes the edit textbox monospace, and also changes all monospace text to Fira Code, the obviously superior monospace font.
@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; }
Teletype backgrounds
Adds a light grey background to <tt> elements ({{text}}), so code snippets stand out more.
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; }
No more bigfaces
Stops big pictures from appearing when you hover over someone's avatar image, because they're stupid and really annoying and you can just click on them if you want to see the big version.
.avatar-hover { display: none !important; }
Breaky breaky
Any text inside a div with class nobreak has line-wrapping happen between every letter.
.nobreak { word-break: break-all; }
Code colours
Add my terminal's code colours as variables. Maybe I'll change this to a more common terminal theme like Monokai or something at some point, but for now it's just my personal theme, which is derived from Tomorrow Night Eighties.
Also, adding the .terminal class to a fake code block as [[div class="code terminal"]] gives it a sort of pseudo-terminal look with a dark background. Doesn't work with [[code]], because Wikidot inserts a bunch of syntax highlighting that you can't change yourself without a bunch of CSS. Use it for non-[[code]] code snippets only.
Quick tool to colourise a 'standard' Wikidot component usage example with the above vars: link
: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
Draw lines around anything inside .debug-mode. The colour of the lines is red but defers to CSS variable --debug-colour.
You can also add div.debug-info.over and div.debug-info.under inside an element to annotate the debug boxes — though you'll need to make sure to leave enough vertical space that the annotation doesn't overlap the thing above or below it.
…like this!
.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; }
@supports(display: grid) { :root { --sidebar-width-on-desktop: calc((var(--base-font-size) * (14 / 15)) * 19); --body-width-on-desktop: 45.75rem; } @media only screen and (min-width: 769px) { #side-bar .close-menu { display: block; position: fixed; top: 0.5rem; left: 0.5rem; width: 3rem; height: 3rem; background: unset; opacity: 1; pointer-events: all; z-index: -1; } #side-bar .close-menu img { color: transparent; } #side-bar .close-menu::before, #side-bar .close-menu::after { content: ""; box-sizing: border-box; position: fixed; display: block; top: 0.5rem; left: 0.5rem; width: 3rem; height: 3rem; padding: 0; margin: 0; text-align: center; pointer-events: all; cursor: pointer; transition: opacity var(--sidebar-transition-timing); } #side-bar .close-menu::before { --mask:url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='utf-8'%3F%3E%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' id='Hamburger' x='0' y='0' baseProfile='tiny' overflow='visible' version='1.2' viewBox='0 0 32 32' xml:space='preserve'%3E%3Cpath d='M4 10h24c1.1 0 2-.9 2-2s-.9-2-2-2H4c-1.1 0-2 .9-2 2s.9 2 2 2zm24 4H4c-1.1 0-2 .9-2 2s.9 2 2 2h24c1.1 0 2-.9 2-2s-.9-2-2-2zm0 8H4c-1.1 0-2 .9-2 2s.9 2 2 2h24c1.1 0 2-.9 2-2s-.9-2-2-2z'/%3E%3C/svg%3E"); z-index: -1; background-color: var(--toggle-icon-color, rgb(var(--sidebar-links-text))) !important; -webkit-mask: var(--mask); mask: var(--mask); -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; -webkit-mask-position: 50% 50%; mask-position: 50% 50%; -webkit-mask-size: 60%; mask-size: 60%; } #side-bar .close-menu::after { z-index: -2; background-color: var(--toggle-button-bg, rgb(var(--sidebar-bg-color))) !important; border-radius: var(--toggle-roundness, 50%); border: var(--toggle-border-color, rgb(var(--sidebar-links-text))) var(--toggle-border-width, 0.25rem) solid; } #side-bar:focus-within .close-menu, #side-bar:not(:has(.close-menu:hover)):not(:focus-within):hover .close-menu { pointer-events: none; } #side-bar:focus-within .close-menu::before, #side-bar:focus-within .close-menu::after { opacity: 0; pointer-events: none; } #side-bar:not(:has(.close-menu:hover)):not(:focus-within):hover .close-menu::before, #side-bar:not(:has(.close-menu:hover)):not(:focus-within):hover .close-menu::after { opacity: 0; pointer-events: none; } #side-bar { display: block; position: fixed; top: 0; left: calc(var(--sidebar-width-on-desktop)*-1); z-index: 10; transition: left 500ms cubic-bezier(0.4, 0, 0.2, 1) 100ms; height: 100%; overflow-y: auto; overflow-x: hidden; margin-top: 0; } #side-bar:focus-within { left: 0; } #side-bar:not(:has(.close-menu:hover)):not(:focus-within):hover { left: 0; } #side-bar .side-block { margin-top: 1rem; background-color: rgb(0, 0, 0, 0); border-radius: 0; border-left-width: 0px; border-right-width: 0px; } #main-content::before { content: ""; display: block; position: fixed; top: 0; right: 0; z-index: -1; opacity: 0; transition: opacity 500ms cubic-bezier(0.4, 0, 0.2, 1) 100ms, width 500ms cubic-bezier(0.4, 0, 0.2, 1) 100ms; margin-left: var(--sidebar-width-on-desktop); background: rgba(var(--swatch-menubg-black-color), .3) 1px 1px repeat; padding-right: 0; width: 100%; height: 100vh; pointer-events: none; z-index: 99; } #side-bar:focus-within ~ #main-content::before { width: calc(100% - var(--sidebar-width-on-desktop)); opacity: 1; pointer-events: all; } #side-bar:not(:has(.close-menu:hover)):not(:focus-within):hover ~ #main-content::before { width: calc(100% - var(--sidebar-width-on-desktop)); opacity: 1; pointer-events: all; } @supports (-moz-appearance:none) and (background-attachment:local) and (not (-moz-osx-font-smoothing:auto)) { #side-bar { padding: inherit; } } #content-wrap { display: flex; flex-direction: row; width: calc(100vw - (100vw - 100%)); min-height: calc(100vh - calc(var(--final-header-height-on-desktop, 10.125rem))); flex-grow: 2; height: auto; position: relative; margin: 0 auto; max-width: inherit; } #main-content { width: 100%; position: initial; max-height: 100%; padding: 2rem 1rem; max-width: var(--body-width-on-desktop, 45.75rem); margin: 0 auto; } #page-content { max-width: min(90vw, var(--body-width-on-desktop, 45.75rem)); } @supports (-webkit-hyphens:none) { #side-bar { transition: left 500ms cubic-bezier(0.4, 0, 0.2, 1) 100ms, padding-right 500ms cubic-bezier(0.4, 0, 0.2, 1) 100ms, background-color 500ms cubic-bezier(0.4, 0, 0.2, 1) 100ms; padding-right: 0; background-color: rgb(0, 0, 0, 0); pointer-events: all; overflow-x: visible; overflow-y: visible; z-index: 999; } #side-bar::-webkit-scrollbar { opacity: 0; -webkit-transition: opacity 500ms cubic-bezier(0.4, 0, 0.2, 1) 100ms; transition: opacity 500ms cubic-bezier(0.4, 0, 0.2, 1) 100ms; } #side-bar .close-menu::before { z-index: 999; } #side-bar .close-menu::after { z-index: 998; } #side-bar:hover .close-menu::before, #side-bar:hover .close-menu::after { opacity: 0; } #side-bar:hover { left: 0; background-color: rgba(var(--swatch-menubg-color), 1); padding-right: 0; } #side-bar:hover::-webkit-scrollbar { opacity: 1; } #side-bar:hover~#main-content::before { width: calc(100% - var(--sidebar-width-on-desktop)); opacity: 1; pointer-events: all; } } } }