buổi picnic của gia đình ngũ giáo
buổi picnic của gia đình ngũ giáo
Tác giả: Irina BougainvilleaIrina Bougainvillea
Đăng vào 23 Dec 2021 17:20
đánh giá: +7+x

What this is

A bunch of miscellaneous CSS 'improvements' that I, CroquemboucheCroquembouche, 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; }
/* source: http://ah-sandbox.wikidot.com/component:collapsible-sidebar-x1 */
 
#top-bar .open-menu a {
        position: fixed;
        top: 0.5em;
        left: 0.5em;
        z-index: 5;
        font-family: 'Nanum Gothic', san-serif;
        font-size: 30px;
        font-weight: 700;
        width: 30px;
        height: 30px;
        line-height: 0.9em;
        text-align: center;
        border: 0.2em solid #888;
        background-color: #fff;
        border-radius: 3em;
        color: #888;
}
 
@media (min-width: 768px) {
 
    #top-bar .mobile-top-bar {
        display: block;
    }
 
    #top-bar .mobile-top-bar li {
        display: none;
    }
 
    #main-content {
        max-width: 708px;
        margin: 0 auto;
        padding: 0;
        transition: max-width 0.2s ease-in-out;
    }
 
    #side-bar {
        display: block;
        position: fixed;
        top: 0;
        left: -20em;
        width: 17.75em;
        height: 100%;
        margin: 0;
        overflow-y: auto;
        z-index: 10;
        padding: 1em 1em 0 1em;
        background-color: rgba(0,0,0,0.1);
        transition: left 0.4s ease-in-out;
 
        scrollbar-width: thin;
    }
 
    #side-bar:target {
        left: 0;
    }
    #side-bar:focus-within:not(:target) {
        left: 0;
    }
 
    #side-bar:target .close-menu {
        display: block;
        position: fixed;
        width: 100%;
        height: 100%;
        top: 0;
        left: 0;
        margin-left: 19.75em;
        opacity: 0;
        z-index: -1;
        visibility: visible;
    }
    #side-bar:not(:target) .close-menu { display: none; }
 
    #top-bar .open-menu a:hover {
        text-decoration: none;
    }
 
    /* FIREFOX-SPECIFIC COMPATIBILITY METHOD */
    @supports (-moz-appearance:none) {
    #top-bar .open-menu a {
        pointer-events: none;
    }
    #side-bar:not(:target) .close-menu {
        display: block;
        pointer-events: none;
        user-select: none;
    }
 
    /* This pseudo-element is meant to overlay the regular sidebar button
    so the fixed positioning (top, left, right and/or bottom) has to match */
 
    #side-bar .close-menu::before {
        content: "";
        position: fixed;
        z-index: 5;
        display: block;
 
        top: 0.5em;
        left: 0.5em;
 
        border: 0.2em solid transparent;
        width: 30px;
        height: 30px;
        font-size: 30px;
        line-height: 0.9em;
 
        pointer-events: all;
        cursor: pointer;
    }
    #side-bar:focus-within {
        left: 0;
    }
    #side-bar:focus-within .close-menu::before {
        pointer-events: none;
    }
    }
}

đánh giá: +7+x

buổi picnic của gia đình ngũ giáo

“Em yêu, em lại vừa thu nhỏ mấy đứa con mình rồi đó,” một bà mẹ nói với vợ mình.

Tabitha Zlatica và vợ cô — Chalice, Nữ Chiến Binh-Tu Sĩ Nơi Điểm Dừng Nghỉ Chết Tiệt Thứ Năm Và Cuối Cùng Trong Rừng Thẳm Của Chuyến Dã Ngoại Gia Đình Này — vừa trải qua một kì nghỉ hết sảy trong một mảng rừng khuất xa khỏi sự hiện diện của nền văn minh nhân loại.

Vừa.

Đó là cho tới khi Tabitha nhận ra rằng Chalice đã làm lạc mất tấm bản đồ duy nhất. Cô đã đánh rơi nó đâu đó trong rừng sâu, ở một nơi cách nhà mình hẳn bốn-tiếng-rưỡi đi xe.

Không chỉ vậy, ngay khi Chalice ngoái đầu lại nhìn phía sau lưng mình, cô đã nhận ra rằng cuộc tranh cãi nảy lửa giữa cô với thằng nhỏ Aspen (5 tuổi) — cuộc tranh luận về thần số học và xác suất hiếm hoi xảy ra việc nó đột ngột làm nảy sinh những pha thoát ly thực tại  — đã khiến cho đầu óc thằng nhóc láo lếu ấy treo ngược cành cây. Thằng bé giờ đang ngước nhìn lên rìa mảng rừng trống, đầu quay tít thò lò, với tâm trí đã chạm đến ngọn nguồn của đại dương kiến thức lạ lùng vô bờ bến nơi vũ trụ này. Nó đang đắm mình trong những bài toán hình học cao cấp xoay quanh đa tạp Calabi–Yau được đặt vào hệ quy chiếu không gian 11 chiều đang biến động.

Trong khi đó, con bé Lilith (7 tuổi) của hai người đang bị cuốn vào lưng chừng một cuộc chiến ba-mươi-ngàn-năm tưởng như dài vô tận, giữa một mớ quỷ dữ khổng lồ tầm cỡ vũ trụ nằm ngoài tầm nhận thức của con người đang trong cơn cuồng nộ, với những đòn đánh đầy hiểm hóc nơi cả thế gian đều là vũ khí. Tất cả chỉ vì Chalice đã vô tình mạo phạm tới tên gọi của Máy Nghiền Vĩ Đại Ghuig'gnost, Kẻ Cáu Bẳn Nhất Thế Gian, gợi nhắc lại một món nợ máu cổ xưa ngay giữa sa mạc, và để cho những lời được tỉa tót như thể xuất phát từ địa ngục của mối hận thù ấy giáng thẳng vào tai con gái mình.

“Ôi thôi nào, Tabby! Đừng có xoắn cả lên như thế chứ,” Chalice phản pháo lại Tabitha khi trong miệng cô đang nhét đầy dưa hấu. Cô phun một hạt dưa bắn cái vèo về phía một cây gỗ gần đó, ghim sâu nó vào trong thân cây những bốn mươi vòng năm tuổi. “Bố mẹ em đã dạy em cách nói chuyện với các vì sao ngay từ khi em mới cai bỉm kia mà. Hồi bằng tuổi Aspen, em đã biết giao tiếp với những luật sư ác quỷ xấu xa nhất, và giải quyết những ca kiện tụng của các chúa tể kinh hoàng mà còn chẳng phải hé con mắt tinh tú của mình ra nhìn. Tụi nhỏ sẽ không sao đâu!”

Không may thay, tất cả những gì Tabitha nghe thấy chỉ có Qnlcf ntcdlks lgnkrsn lgstd mbrn xflnm sgwwdlwv sltpcnhdrffxl. Cô nhướn mày nhìn Chalice. “Em yêu, em có nhớ chị đã nói thế nào với em về chuyện mở miệng khi đang ăn không vậy?”

Chalice ăn nốt miếng dưa hấu và lau miệng. “Ôi, em xin lỗi, chị yêu.”

“Em biết đấy, cưng à, phải có ai đó biết cư xử đàng hoàng trong nhà mình chứ. Nếu không phải chị thì còn ai đây!”

Chalice mỉm cười, thu cả khung cảnh cuộc dã ngoại vào trong tầm mắt. Cô thấy mình thật may mắn vì có được một gia đình hạnh phúc đến thế này. Và cả con cô nữa! Chúng khiến cô thật quá đỗi tự hào, khi chúng đã biết ngồi thẳng lưng và đau đáu nhìn vào những thứ quỷ dữ kinh hoàng muôn hình muôn vẻ đẹp đẽ đến điếng người kia. Chúng làm được hết thảy những điều đó ngay từ khi tuổi của chúng vẫn còn đếm được trên đầu ngón tay!

Tabitha đáp lại bằng một nụ cười còn lớn hơn thế nữa. “Và bí ngô này, em có nhớ chị từng nói chuyện gì với em không?”

Chalice ngay tức khắc hiểu rằng nụ cười của Tabitha chính là vỏ bọc của một bài thuyết giảng sắp được tuôn ra ngay trước mặt cô. Cô thở dài. “Vâng, chị yêu — không có cộng gộp ngoại không gian gì hết, khi mà bữa trưa vẫn còn chưa xong.

Tabitha, với tâm trạng hài lòng khi lời cô nói đã không trở thành nước đổ lá khoai thêm lần nữa sau hằng hà vô số lần từng như thế, đứng thẳng dậy và búng ngón tay.

Cả hai đứa con của cô giật bắn mình tỉnh dậy, mắt mở thao láo, há hốc miệng. Những nét xoắn ốc vặn vẹo qua lại dường như đã hằn đậm trên tròng mắt chúng.

Trong một khoảnh khắc, khung cảnh siêu thực ấy dường như bất động, và thời gian chỉ còn nhích từng chút một khi cảnh vật xung quanh họ chuyển dần sang sắc xanh dương. Và rồi, vài giây sau đó, hai đứa bé cùng liếc nhìn ra xa phía ngoài con đường họ đang đi với ánh mắt gian xảo. Chúng hét lên: “Một lần nữa thôi, bật, tung và nhảy, qua quả trứng mực thối của gốc cây với cái tên giận dữ!”, rồi chạy biến vào rừng, vừa đi vừa cười khúc khích và hò reo và làm đủ trò phiền toái chẳng khác nào trước kia.

“Trời đất ơi — chúng đã thành những mẩu bánh quy thông minh đến thế này sao!” Chalice hướng ánh mắt rạng ngời đến vợ mình. “Ôi, chị yêu, em yêu chị nhiều lắm luôn á,” cô ngân nga như thể hát lên.

“Và chị cũng yêu em nhiều lắm! Giờ thì, em nên tìm cách để chúng ta quay lại với nhóm đi, bé yêu à, ngay cho chị. Trừ khi em muốn đi vào vết xe đổ của chuyến đi bằng xe buýt hồi Cuộc Du Hành Vặn Vẹo 2012.”

Thôôôôôi đượơơơơc, để em lấy rìu từ trên xe xuống đã. Chúng ta phải tự đốn cây tìm đường về thôi.”

Rồi họ trao nhau một nụ hôn, và sống bên nhau ô môi trọn đời.



~HTTTT~



đánh giá: +7+x

Nếu không có ngoại lệ được nêu, nội dung của trang này được xuất bản dưới giấy phép Creative Commons Attribution-ShareAlike 3.0 License