佈景主題:Lakeus

This page is a translated version of the page Skin:Lakeus and the translation is 74% complete.
MediaWiki佈景主題手冊 - 分類
OOjs UI icon layout-ltr.svg
Lakeus
發行狀態: 穩定版
SkinLakeus.png
作者
  • Lakejason0
  • Light beacon
  • Dianliang233
  • Winston Sung
  • ...
最新版本 1.1.12 (2022-08-07)
相容性方針 Snapshots releases along with MediaWiki. Master is not backwards compatible.
MediaWiki 1.36+
許可協議 GNU General Public License 3.0 or later
下載
範例 Example on MediaWiki Skins Wiki
參數
  • $wgLakeusShowRepositoryLink
  • $wgLakeusSiteNoticeHasBorder
翻譯佈景主題(如果佢喺translatewiki.net上提供嘅話)
檢查用途及版本矩陣

Lakeus係一款旨在提供簡潔而完整體驗嘅佈景主題。 以佢嘅作者之一,Lakejason0嘅小説角色命名。

安裝

  • 下載,將佢擺落你skins/文件夾嘅Lakeus目錄入面。
  • 將下面嘅代碼添加落你LocalSettings.php嘅底部:
wfLoadSkin( 'Lakeus' );
  •   Done - 喺你嘅wiki上打開Special:Version,確認佈景主題已經安裝成功。

功能

  • 簡潔而完整(起碼大部分功能都可以正常運作)
  • 支援停用JavaScript嘅情形下運作。
  • 使用CSS變數嚟實現自訂。
  • 響應式設計。 喺桌上設備同埋平板電腦上面嘅顯示應該都係正常嘅;喺非常之窄嘅手機熒幕上,邊欄選單可能會因為太闊而無法關閉。
  • 主題設計器。 於偏好設定中啟用就可即時預覽及變更主題。 大多數情形下,只需調整幾個變數,主題設計器就可為你計算生成主題。
    • 目前可能存在問題且缺乏穩定,如果你遇到問題,務請向我回報! 如果自動計算結果不及預期,你可隨時將之停用。

計劃功能

  • 呢款佈景主題應同無JavaScript環境相容。 雖然喺無JavaScript情形下,部分便利特性會無法使用。
  • 呢款佈景主題為使用帶有LanguageConverter變體語言〔比如中文(語言代碼為zh)同塞爾維亞語〕嘅網站提供一個獨立選單。 當網站無語言變種可用時,選單應該會隱藏自身。
  • RTL書寫方向嘅支援尚未完全測試,但主要功能已通過相容測試(例如邊欄選單)。

自訂

CSS變數

你嘅CSS喺部分特殊頁面上可能唔生效(例如喜好設定);呢個係MediaWiki本體出於安全考慮所作出嘅預設行為,但係站點管理員可以喺清楚相關風險之後將$wgAllowSiteCSSOnRestrictedPages 設定為true嚟繞過呢個特性。

Lakeus支援使用CSS變數嚟實現自訂。 以下係製作主題嘅方法示例,如果要將主題結果(應該係CSS代碼)套用,您需要將佢複製到Lakeus.css,可以喺MediaWiki:Lakeus.css(適用於全站用户)或Special:MyPage/Lakeus.css(適用於用户自己)處揾到。

主題設計器

主題設計器可為所有人帶來更方便嘅體驗(希望如此)。 你只需變更幾個基本變數,其餘會自動計算。 你可停用相應嘅自動計算,並按照自己意願進行微調。

如要啟用主題設計器,請前往偏好設定,選擇「外觀/顯示」,選中Lakeus佈景主題後,你就可以見到主題設計器選項。 啟用後,主題設計器會於所有頁面載入。

當中嘅按鈕同表單嘅作用基本都同字面意思一樣,如果有不解之處,就試著用下,睇下起乜嘢作用。 There are some variables that do not appear on every page, and they would be listed below:

  • Interface message box. These elements appears in situations like that a user group setting is successfully applied when JavaScript disabled, translation page edit notice warning, MediaWiki exceptions that appears on page editing, user talk page notices with no Echo and other notification extensions installed, and so on.

主題方案集

There will be some preset theme that is already here for you to use. You can share your own theme on the talk page as well. Come back later if there isn't any.

復古

一個復古主題,收尾一次導出嘅版本係1.1.7。

:root {
    --color-primary: #8e860a;
    --color-secondary: #eeebe7;
    --color-neutral: #a2a9b1;
    --color-warning: #ffcc33;
    --color-error: #dd3333;
    --color-success: #14866d;
    --color-header: rgba(238,235,231,0);
    --color-link: #0645ad;
    --color-secondary--derived: #f8f9fa;
    --border-color-secoundary--derived: #a2a9b1;
    --font-family: 'Roboto', -apple-system, blinkmacsystemfont, 'Segoe UI', 'Oxygen', 'Ubuntu', 'Cantarell', 'Helvetica Neue', sans-serif;
    --font-family-serif: 'Linux Libertine', 'Times New Roman', 'Liberation Serif', 'Nimbus Roman', 'Noto Serif', 'Times', serif;
    --elevation: 0 2px 2px rgba( 0, 0, 0, 10% );
    --background-color-base: #eeebe7;
    --color-link--visited: #001f7d;
    --color-link--active: #5670e0;
    --color-link-new: #dd3333;
    --color-link-new--visited: #a4000c;
    --color-link-new--active: #ff6a5d;
    --color-link-external: #003da3;
    --color-link-external--visited: #001873;
    --color-link-external--active: #5267d5;
    --header-elevation: unset;
    --text-color-header: #000000;
    --icon-filter-header: unset;
    --background-color-search-suggestions: #eeebe7;
    --border-color-search-suggestions: #8c8985;
    --background-color-search-suggestions-current: #8e860a;
    --color-search-suggestions-text: #000000;
    --color-search-suggestions-text-current: #ffffff;
    --background-color-search-input: #eeebe7;
    --border-color-search-bar: #8c8985;
    --background-color-toggle-list: #ffffff;
    --background-color-toggle-list-card: #8e860a;
    --text-color-toggle-list-item: #000000;
    --background-color-toggle-list-item-hover: rgba(0,0,0,0.1);
    --text-color-toggle-list-item-hover: #000000;
    --background-color-toggle-list-item-focus: rgba(0,0,0,0.2);
    --text-color-toggle-list-item-focus: #000000;
    --border-color-toggle-list: #9b9b9b;
    --subheader-color-toggle-list: #6a6a6a;
    --logo-text-color-toggle-list: #ffffff;
    --mask-background: rgba(0,0,0,0.8);
    --background-color-content: #eeebe7;
    --text-color-content: #24220a;
    --background-color-body: #eeebe7;
    --text-color-body: #000000;
    --border-color-content: #bcb9b5;
    --color-accent-header-tab: #8e860a;
    --color-accent-header-tab-selected: #8e860a;
    --color-accent-header-tab-new: #8e860a;
    --border-color-header-tab: #eaecf0;
    --color-tagline: rgba(0,0,0,0.5);
    --font-family-headings: var(--font-family-serif);
    --background-color-edit-options: #eeeeee;
    --border-color-edit-options: #c8ccd1;
    --background-color-toc: #e4e1dd;
    --border-color-toc: #b2afab;
    --color-toc-number: #0d0d0d;
    --border-color-interface-message-box-neutral: #a2a9b1;
    --background-color-interface-message-box-neutral: #e5e7ea;
    --text-color-interface-message-box-neutral: #000000;
    --border-color-interface-message-box-warning: #ffcc33;
    --background-color-interface-message-box-warning: #ffe69a;
    --text-color-interface-message-box-warning: #000000;
    --border-color-interface-message-box-error: #dd3333;
    --background-color-interface-message-box-error: #fae2e2;
    --text-color-interface-message-box-error: #000000;
    --border-color-interface-message-box-success: #14866d;
    --background-color-interface-message-box-success: #d9ebe7;
    --text-color-interface-message-box-success: #000000;
    --border-color-user-message: #ffa500;
    --background-color-user-message: #ffe4b3;
    --text-color-user-message: #000000;
    --background-color-wikitable: #e9e6e2;
    --text-color-wikitable: #030303;
    --border-color-wikitable: #9e9c98;
    --background-color-wikitable-table-head: #dfdcd8;
    --background-color-portlet-body: #ffffff;
    --background-color-portlet-item-hover: rgba(0,0,0,0.1);
    --background-color-portlet-item-focus: rgba(44,44,44,0.1);
    --border-color-portlet-body: #ffffff;
    --background-color-footer: #dad7d3;
    --text-color-footer: #000000;
    --color-footer-link: #0645ad;
    --color-footer-link--visited: #001f7d;
    --color-footer-link--active: #5670e0;
}
海洋

淡藍色配色主題方案,收尾一次導出嘅版本係 1.1.8。

:root {
    --color-primary: #3366cc;
    --color-secondary: #f4fcff;
    --color-neutral: #a2a9b1;
    --color-warning: #ffcc33;
    --color-error: #dd3333;
    --color-success: #14866d;
    --color-header: #e2f4fe;
    --color-link: #0645ad;
    --color-secondary--derived: #f8f9fa;
    --border-color-secoundary--derived: #a2a9b1;
    --font-family: 'Roboto', -apple-system, blinkmacsystemfont, 'Segoe UI', 'Oxygen', 'Ubuntu', 'Cantarell', 'Helvetica Neue', sans-serif;
    --font-family-serif: 'Linux Libertine', 'Times New Roman', 'Liberation Serif', 'Nimbus Roman', 'Noto Serif', 'Times', serif;
    --elevation: 0 2px 2px rgba( 0, 0, 0, 10% );
    --background-color-base: #f4fcff;
    --color-link--visited: #001f7d;
    --color-link--active: #5670e0;
    --color-link-new: #dd3333;
    --color-link-new--visited: #a4000c;
    --color-link-new--active: #ff6a5d;
    --color-link-external: #003da3;
    --color-link-external--visited: #001873;
    --color-link-external--active: #5267d5;
    --header-elevation: unset;
    --text-color-header: #000000;
    --icon-filter-header: unset;
    --background-color-search-suggestions: #f4fcff;
    --border-color-search-suggestions: #91989b;
    --background-color-search-suggestions-current: #3366cc;
    --color-search-suggestions-text: #000000;
    --color-search-suggestions-text-current: #ffffff;
    --background-color-search-input: #f4fcff;
    --border-color-search-bar: #91989b;
    --background-color-toggle-list: #f4fcff;
    --background-color-toggle-list-card: #3366cc;
    --text-color-toggle-list-item: #0b3c75;
    --background-color-toggle-list-item-hover: rgba(51,102,204,0.1);
    --text-color-toggle-list-item-hover: #0b3c75;
    --background-color-toggle-list-item-focus: rgba(35,93,194,0.2);
    --text-color-toggle-list-item-focus: #0b3c75;
    --border-color-toggle-list: #91989b;
    --subheader-color-toggle-list: #0955b8;
    --logo-text-color-toggle-list: #ffffff;
    --mask-background: rgba(0,0,0,0.8);
    --background-color-content: #f4fcff;
    --text-color-content: #000000;
    --background-color-body: #f4fcff;
    --text-color-body: #000000;
    --border-color-content: #c1c9cc;
    --color-accent-header-tab: #3366cc;
    --color-accent-header-tab-selected: #3366cc;
    --color-accent-header-tab-new: #3366cc;
    --border-color-header-tab: #eaecf0;
    --color-tagline: rgba(0,0,0,0.5);
    --font-family-headings: var(--font-family-serif);
    --background-color-edit-options: #eeeeee;
    --border-color-edit-options: #c8ccd1;
    --background-color-toc: #eaf2f5;
    --border-color-toc: #b7bfc2;
    --color-toc-number: #0d0d0d;
    --border-color-interface-message-box-neutral: #a2a9b1;
    --background-color-interface-message-box-neutral: #e5e7ea;
    --text-color-interface-message-box-neutral: #000000;
    --border-color-interface-message-box-warning: #ffcc33;
    --background-color-interface-message-box-warning: #ffe69a;
    --text-color-interface-message-box-warning: #000000;
    --border-color-interface-message-box-error: #dd3333;
    --background-color-interface-message-box-error: #fae2e2;
    --text-color-interface-message-box-error: #000000;
    --border-color-interface-message-box-success: #14866d;
    --background-color-interface-message-box-success: #d9ebe7;
    --text-color-interface-message-box-success: #000000;
    --border-color-user-message: #ffa500;
    --background-color-user-message: #ffe4b3;
    --text-color-user-message: #000000;
    --background-color-wikitable: #eff7fa;
    --text-color-wikitable: #030303;
    --border-color-wikitable: #a4abae;
    --background-color-wikitable-table-head: #e5ecef;
    --background-color-portlet-body: #ffffff;
    --text-color-portlet-item: #0b3c75;
    --background-color-portlet-item-hover: rgba(51,102,204,0.1);
    --text-color-portlet-item-hover: #0b3c75;
    --background-color-portlet-item-focus: rgba(112,147,255,0.1);
    --text-color-portlet-item-focus: #0b3c75;
    --border-color-portlet-body: #ffffff;
    --background-color-footer: #e2f4fe;
    --text-color-footer: #000000;
    --color-footer-link: #0645ad;
    --color-footer-link--visited: #001f7d;
    --color-footer-link--active: #5670e0;
}


手動修改變數

以下係預設嘅CSS變數,可以修改呢啲設置並且將設置結果放到你嘅Lakeus.css入面。

:root {
  --background-color-base: white;
  --background-color-body: white;
  --background-color-content: white;
  --background-color-footer: #eee;
  --background-color-toggle-list: white;
  --background-color-portlet-body: white;
  --background-color-toggle-list-card: #eee;
  --background-color-toggle-list-item-hover: rgba(0, 0, 0, 0.1);
  --background-color-toggle-list-item-focus: rgba(0, 0, 0, 0.2);
  --background-color-portlet-item-hover: rgba(0, 0, 0, 0.1);
  --background-color-portlet-item-focus: rgba(0, 0, 0, 0.2);
  --background-color-edit-options: #eee;
  --background-color-search-suggestions: #fff;
  --background-color-search-suggestions-current: #1d5492;
  --background-color-search-input: #fff;
  --background-color-toc: #f8f9fa;
  --background-color-interface-message-box-neutral: #eaecf0;
  --background-color-interface-message-box-error: #fee7e6;
  --background-color-interface-message-box-warning: #fef6e7;
  --background-color-interface-message-box-success: #d5fdf4;
  --background-color-user-message: #ffce7b;
  --background-color-wikitable: #f8f9fa;
  --background-color-wikitable-table-head: #eaecf0;
  --border-color-edit-options: #c8ccd1;
  --border-color-content: #ccc;
  --border-color-toggle-list: #ddd;
  --border-color-search-suggestions: #c8ccd1;
  --border-color-search-bar: var(--color-gray-2);
  --border-color-portlet-body: var(--color-gray);
  --border-color-header-tab: var(--color-gray-2);
  --border-color-toc: #a2a9b1;
  --border-color-interface-message-box-neutral: #a2a9b1;
  --border-color-interface-message-box-error: #d33;
  --border-color-interface-message-box-warning: #fc3;
  --border-color-interface-message-box-success: #14866d;
  --border-color-user-message: #ffa500;
  --border-color-wikitable: #a2a9b1;
  --subheader-color-toggle-list: #6a6a6a;
  --logo-text-color-toggle-list: #000000;
  --text-color-toggle-list-item: #1c1c1c;
  --text-color-toggle-list-item-hover: #3a3a3a;
  --text-color-toggle-list-item-focus: #3a3a3a;
  --text-color-content: #000000;
  --text-color-header: #000000;
  --text-color-body: #000000;
  --text-color-footer: #000000;
  --text-color-interface-message-box-neutral: #000000;
  --text-color-interface-message-box-error: #000000;
  --text-color-interface-message-box-warning: #000000;
  --text-color-interface-message-box-success: #000000;
  --text-color-user-message: #000000;
  --text-color-wikitable: #202122;
  --icon-filter-header: unset;
  --color-search-suggestions-text: #000;
  --color-search-suggestions-text-current: #fff;
  --color-tagline: var(--color-base);
  --color-accent-header-tab: var(--color-base);
  --color-accent-header-tab-selected: #54595d;
  --color-accent-header-tab-new: #54595d;
  --color-header: white;
  --color-base: #54595d;
  --color-gray: #a2a9b1;
  --color-gray-2: #eaecf0;
  --color-link: #0645ad;
  --color-link--visited: #0b0080;
  --color-link--active: #faa700;
  --color-link-new: #d33;
  --color-link-new--visited: #a55858;
  --color-link-new--active: #faa700;
  --color-link-external: #36b;
  --color-link-external--visited: #636;
  --color-link-external--active: #b63;
  --color-footer-link: #0645ad;
  --color-footer-link--visited: #0b0080;
  --color-footer-link--active: #faa700;
  --color-toc-number: #202122;
  --font-family: 'Roboto', -apple-system, blinkmacsystemfont, 'Segoe UI', 'Oxygen', 'Ubuntu', 'Cantarell', 'Helvetica Neue', sans-serif;
  --font-family-serif: 'Linux Libertine', 'Times New Roman', 'Liberation Serif', 'Nimbus Roman', 'Noto Serif', 'Times', serif;
  --font-family-headings: var(--font-family-serif);
  --elevation: 0 2px 2px rgba( 0, 0, 0, 10% );
  --header-elevation: var(--elevation);
  --mask-background: rgba( 0, 0, 0, 0.8 );
}

例如,要將頂欄嘅顏色改為淡藍色(比如#4FC3F7),噉就寫成:

:root {
  --color-header: #4FC3F7;
}


參數

參數 類型 預設值 描述
$wgLakeusShowRepositoryLink 布爾值 true 決定是否喺頁腳處展示指向此佈景主題倉庫嘅連結。
$wgLogos 目前,只有iconwordmark會被使用;其餘鍵名(例如svg1x1.5x2x等)唔會被此佈景主題使用。 請注意,其他佈景主題亦有可能使用由icon提供嘅圖片。與此同時亦會使用其他鍵名,因此請勿用以上鍵名嘗試為此佈景主題提供單獨圖標。
$wgLakeusSiteNoticeHasBorder 布爾值 false Determines whether to add a skin provided border to site notice. Enabling it can be useful for plain text notices, but if you've already got a border in your site notice content, you can leave it disabled.

側邊欄圖標

Unfortunately, it's not easy to add icons to the skin without including many images on page. If you can bear the loading time of web font icons, you can try this out as follows. To start with, include the icon font face (in this whole example, Material Icons) in your CSS (Lakeus.css). You may have loaded some font faces in other places other than Lakeus.css, in which case just ensure that they don't conflict with each other.

/* MD Icons */
/* fallback */
@font-face {
  font-family: 'Material Icons';
  font-style: normal;
  font-weight: 400;
  src: url(https://fonts.gstatic.com/s/materialicons/v70/flUhRq6tzZclQEJ-Vdg-IuiaDsNc.woff2) format('woff2');
}

Then, as we are going to use pseudo elements, some paddings and extra settings to create space for icons are applied:

.toggle-list__list a {
    padding-left: calc(8px + 25px);
}

.toggle-list__list a::before {
    content: '';
    width: 0;
    height: 0;
    display: inline-block;
    font-family: 'Material Icons';
    font-size: 18px;
    transform: translateX(-25px) translateY(3px);
    /* Display Optimizing */
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
    -moz-osx-font-smoothing: grayscale;
    font-feature-settings: 'liga';
}

Now, it's time to add the actual icons. You can use Devtools (The tool opened by right click and then Inspect Element) to see the list items' IDs, and we are finally going to set the actual content of the pseudo elements (icons):

/* Navigation */
#n-mainpage-description a::before {
    content: 'home';
}

#n-recentchanges a::before {
    content: 'auto_awesome';
}

#n-randompage a::before {
    content: 'shuffle';
}

#n-portal a::before {
    content: 'forum';
}

#n-help-mediawiki a::before {
    content: 'help_center';
}

In this example, Material Icons supports certain strings (used here) and code points for an certain icon. For what strings or code points could be used for Material Icons, see Icons - Google Fonts. Feel free to add more rules for your own site, for example one of the authors' site got an admin noticeboard:

#n-adminnoticeboard a::before {
    content: 'groups';
}

The #n-... part corresponds with the system message you used in your MediaWiki:Sidebar.