Skip to content

Commit b815152

Browse files
authored
Merge pull request #1528 from cintek/new-theme
New theme 'focus'
2 parents 97b4316 + de8631a commit b815152

File tree

11 files changed

+1066
-0
lines changed

11 files changed

+1066
-0
lines changed

src/moin/themes/focus/info.json

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
{
2+
"identifier": "focus",
3+
"application": "moin",
4+
"name": "Focus Theme",
5+
"description": "Focus Theme offers a clean interface with a sidebar which contains global actions and a top bar which contains actions that affect the current page.",
6+
"author": "Christoph Klassen",
7+
"website": "http://moinmo.in/",
8+
"license": "see MoinMoin license",
9+
"doctype": "html5"
10+
}
Lines changed: 310 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,310 @@
1+
:root {
2+
--accent: #2269db;
3+
--accent-hover: #4382e7;
4+
--accent-light: #83b2ff;
5+
--accent-lighter: #e5edfd;
6+
--link: #2269db;
7+
--negative: #cc4343;
8+
}
9+
10+
@font-face {
11+
font-family: 'JetBrains Mono';
12+
src: url('../fonts/JetBrainsMono-Regular.woff2') format('woff2');
13+
font-weight: normal;
14+
font-style: normal;
15+
}
16+
17+
html { background-color: white; }
18+
html * { box-sizing: border-box; }
19+
html, body { max-width: 100vw; max-height: 100vh; overflow-x: hidden;}
20+
h1, h2, h3, h4, h5, h6 { border-bottom: none; }
21+
h2 { margin-top: 1.6em; margin-bottom: 0.5em; }
22+
.clickable-header { cursor: pointer; }
23+
input[type="checkbox"] { appearance: none; border: 2pt solid #242424;
24+
height: 12pt; width: 12pt; transition: background-color 80ms linear; }
25+
input[type="checkbox"]:checked { background-color: var(--accent-light); }
26+
27+
#moin-main-wrapper { display: flex; }
28+
.moin-logo { text-align: start; }
29+
.moin-sitename { display: flex; margin-top: 4pt; margin-bottom: 10pt;
30+
font-size: 1.4rem; font-weight: 600; white-space: normal; }
31+
#moin-username, #moin-navibar { display: flex; flex-direction: column; row-gap: 6pt; margin-bottom: 8pt; }
32+
#moin-username a, #moin-navibar a { width: 90%; display: block; padding: 4pt; border-radius: 2pt; }
33+
#moin-username a:hover, #moin-navibar a:hover,
34+
#top-bar a:hover, .moin-breadcrumb a:hover { background-color: #d6d6d6bd }
35+
#moin-navibar .wikilink { display: flex; align-items: center; }
36+
37+
#moin-searchform { float: none; display: flex; width: 90%; margin-bottom: 14pt;
38+
margin-right: 4pt; }
39+
#moin-searchform input.moin-search-query { border: none;
40+
border-bottom: 1pt solid #242424; border-radius: 0pt; width: 90%; }
41+
#moin-search-submit { min-width: 0pt;
42+
background: url("../icons/magnifying-glass-solid.svg") center center no-repeat; }
43+
#moin-navibar .wikilink a { display: flex; column-gap: 4pt; align-items: center;}
44+
#moin-navibar .wikilink i, #moin-username i { font-size: 14pt; }
45+
.fa.global-history { height: 16pt; width: 16pt;
46+
background: url("../icons/globe-rotate-left-solid.svg") center center no-repeat; }
47+
48+
#moin-page { min-width: 0pt; }
49+
50+
header { min-width: 140pt; min-height: 100vh; margin-right: 18pt; padding: 8pt;
51+
box-shadow: 2pt 0pt 10pt 2pt rgba(0, 0, 0, 0.1); }
52+
header ol, header ul { padding-left: 0pt; }
53+
header li::marker { display: none; }
54+
header a { word-break: break-all; white-space: inherit; }
55+
#moin-searchform input.moin-search-query:focus { background-color: #ecf2fd;
56+
border-bottom: 1pt solid var(--accent); outline: none; }
57+
58+
#top-bar { width: 100%; height: 32pt; overflow-x: auto; padding: 10pt 0;
59+
margin-right: 10pt; z-index: 1000; }
60+
#top-bar ol, #top-bar ul { list-style-type: none; }
61+
#top-bar ul { display: flex; column-gap: 10pt; padding-left: 0pt; }
62+
#top-bar .moin-itemviews.panel { display: flex; column-gap: 10pt; padding-left: 0pt; }
63+
#top-bar .moin-itemviews.panel.mobile { display: none; }
64+
#top-bar a { padding: 4pt; border-radius: 2pt; }
65+
66+
#top-bar .moin-panel-heading { display: none; }
67+
#top-bar a { white-space: nowrap; }
68+
header a, header a:link, header a:visited,
69+
#top-bar a, #top-bar a:visited { color: #242424; }
70+
71+
#top-bar-menu label { padding: 4pt; border-radius: 2pt; }
72+
#top-bar-menu label:hover { background-color: #d6d6d6bd; cursor: pointer; }
73+
#top-bar-menu #top-bar-menu-content {
74+
display: flex;
75+
flex-direction: column;
76+
row-gap: 7pt;
77+
min-width: 120pt;
78+
padding: 6pt 4pt;
79+
margin-top: 4pt;
80+
align-items: stretch;
81+
z-index: 10;
82+
transform-origin: top;
83+
transform: scaleY(0);
84+
transition: transform 80ms linear;
85+
}
86+
#top-bar-menu-switch { display: none; }
87+
#top-bar-menu-switch:checked ~ #top-bar-menu-content {
88+
transform: scaleY(1);
89+
box-shadow: 0pt 2pt 4pt 2pt rgba(0, 0, 0, 0.25);
90+
}
91+
#top-bar-menu-switch:checked ~ #top-bar-menu-label i{
92+
transition: transform 80ms linear;
93+
}
94+
#top-bar-menu-switch:checked ~ #top-bar-menu-label i {
95+
transform: rotate(-180deg);
96+
}
97+
#top-bar-menu-content a { display: block; width: 100%; }
98+
99+
#top-bar, #top-bar-menu-content { position: fixed; background-color: white; }
100+
101+
.moin-breadcrumb { margin: 14pt 0; }
102+
.moin-breadcrumb .moin-panel-heading { font-size: 1.1rem; margin-bottom: 4pt; }
103+
.moin-breadcrumb ul { list-style-type: circle; padding-left: 16pt; }
104+
.moin-breadcrumb ul li { margin-bottom: 4pt; }
105+
.moin-breadcrumb a { padding: 4pt; border-radius: 2pt; display: block; width: 90%; }
106+
107+
#moin-footer { display: flex; flex-direction: column; width: unset;
108+
margin-top: 40pt; margin-bottom: 4pt; padding-right: 10pt; }
109+
#moin-pageinfo, #moin-wiki-license,
110+
#moin-credits, #moin-version, #moin-timings {
111+
float: none;
112+
margin: 0pt;
113+
}
114+
#moin-credits-container { display: flex; align-items: end; justify-content: space-between;
115+
column-gap: 20pt; }
116+
117+
#moin-content { min-height: 80vh; margin-top: 36pt; }
118+
#moin-content-data { max-width: 1100pt; margin-right: 18pt; }
119+
#moin-content-data .moin-permalink { display: none; position: relative;}
120+
#moin-content-data .moin-permalink::after { display: inline-block;
121+
color: var(--accent); position: absolute; bottom: -4pt; }
122+
123+
.moin-flash { border-radius: 2pt; margin-right: 18pt; }
124+
.moin-flash-info { background-color: #e4f2ff; border: 1pt solid var(--accent-light); }
125+
.moin-flash-info::before { font-family: FontAwesome; content: "\f05a"; color: #415e79; }
126+
.moin-flash-warning { background-color: #ffe4e4; border: 1pt solid #ff8181; }
127+
.moin-flash-warning::before { font-family: FontAwesome; content: "\f071"; color: #a71818; }
128+
.moin-flash::after { color: #424242; right: 2px; cursor: pointer; }
129+
130+
.moin-button, a.moin-button:link { background-color: white; border: 2pt solid var(--accent);
131+
border-radius: 2pt; height: 24pt; width: fit-content; min-width: 60pt;
132+
padding: 0pt 6pt; margin: .5em 0pt; box-shadow: none; }
133+
.moin-button:hover, .moin-button:focus, a.moin-button:link:hover { color: white; background-color: var(--accent-hover);
134+
border-color: var(--accent-hover); box-shadow: none; }
135+
.moin-button:hover a { color: white; }
136+
.moin-button.negative { border-color: var(--negative); }
137+
.moin-button.negative:hover { color: white; background-color: var(--negative); }
138+
#moin-save-text-button,
139+
#popup .popup-submit { color: white; background-color: var(--accent); }
140+
#moin-save-text-button:hover,
141+
#popup .popup-submit:hover { background-color: var(--accent-hover); }
142+
143+
#moin-modify { width: 1100pt; max-width: 95%; }
144+
#moin-modify textarea, #moin-modify dd input { width: 100%; }
145+
#moin-modify .submit-buttons { width: fit-content; position: sticky; background-color: white;
146+
padding: 8pt 12pt; margin-left: auto; box-shadow: 0pt 0pt 6pt 2pt rgba(0, 0, 0, 0.2);
147+
margin-top: 22pt; bottom: 20pt; }
148+
#moin-modify form { position: relative; }
149+
.moin-form input[type="submit"].moin-modify-submit,
150+
.moin-form .moin-load-draft, .moin-form .moin-cancel {
151+
float: none;
152+
clear: none;
153+
margin: unset;
154+
}
155+
.moin-form dd input[type="checkbox"] { width: 12pt; }
156+
.moin-edit-help { float: unset; padding: 0pt; }
157+
.moin-edit-help.moin-button { display: block; }
158+
.moin-edit-help a { height: 100%; width: 100%; display: flex; align-items: center;
159+
padding: 0pt 6pt; }
160+
.moin-form .submit-buttons { display: flex; column-gap: 8pt; justify-content: end;
161+
margin: 12pt 0;
162+
float: right;
163+
flex-direction: row-reverse;
164+
}
165+
.moin-form button, .moin-form input[type="submit"] { clear: none; margin: unset; }
166+
.moin-form button, .moin-button, .moin-form input[type="submit"] { display: flex;
167+
align-items: center; justify-content: center; }
168+
169+
.moin-edit-content { font-family: "JetBrains Mono", monospace; font-variant-ligatures: none;
170+
margin-top: 6pt; }
171+
172+
#moin-modify input[type="file"] { color: #383838; font-size: 0.9rem; cursor: pointer; }
173+
174+
.moin-form dl { margin-top: 8pt; margin-bottom: 6pt; }
175+
176+
div.hint, div.tip { min-height: unset; margin-top: 0pt; margin-left: 1pt; padding: 0pt;
177+
border: none; font-size: 0.9rem; color: #383838; }
178+
div.hint::before { font-family: FontAwesome; content: "\f0eb"; padding: 0pt;
179+
margin-right: 4pt; }
180+
div.tip::before { font-family: FontAwesome; content: "\f0eb"; padding: 0pt;
181+
margin-right: 4pt; }
182+
div.caution::before { font-family: FontAwesome; content: "\f071"; padding: 0pt;
183+
margin-right: 4pt; }
184+
185+
#popup { border: none; box-shadow: 0pt 0pt 4pt 4pt #2b2b2b3d; }
186+
.popup-header { background: white; color: #242424; }
187+
.popup-closer.popup-cancel { padding: 4px 7px; font-family: FontAwesome;
188+
content: "\58"; background-color: white; color: #242424; border-radius: 2pt; }
189+
.popup-closer.popup-cancel:hover { background-color: #e0e0e0; }
190+
#popup .popup-selected-names { margin-top: 0pt; }
191+
#popup .caution { margin: 10pt 0pt; }
192+
#popup .popup-submit { float: right; }
193+
194+
div.attention > ol, div.attention > ul, div.attention > p, div.caution > ol,
195+
div.caution > ul, div.caution > p, div.danger > ol, div.danger > ul, div.danger > p,
196+
div.error > ol, div.error > ul, div.error > p, div.hint > ol, div.hint > ul,
197+
div.hint > p, div.important > ol, div.important > ul, div.important > p, div.note > ol,
198+
div.note > ul, div.note > p, div.tip > ol, div.tip > ul, div.tip > p, div.warning > ol,
199+
div.warning > ul, div.warning > p { padding-left: 30pt; }
200+
201+
.moin-tabs { margin-bottom: 20pt; border-bottom: 1pt solid #d9d9d9; }
202+
.moin-tab-titles { border: none; padding-left: 0pt; display: flex; flex-wrap: wrap-reverse;
203+
row-gap: 4pt; column-gap: 6pt; }
204+
.moin-tab-titles li { padding: 0pt; margin: 0pt; border: none; }
205+
.moin-tab-titles a { border-radius: 0pt; border: none; background-color: white; }
206+
.moin-tabs .moin-tab-titles a { display: flex; text-align: center;
207+
white-space: nowrap; height: fit-content; padding: 6pt 5pt; color: #242424;
208+
border-radius: 2pt; }
209+
.moin-tabs .moin-tab-titles a:hover { background-color: #e0e0e0; }
210+
.moin-tab-titles a.moin-current-tab { background-color: #b3b3b3; margin: 0pt; }
211+
.moin-tab-titles a.moin-current-tab:hover { background-color: #b3b3b3; cursor: default; }
212+
213+
#moin-modify br { display: none; }
214+
215+
#moin-usersettings .moin-float-fix { display: flex; justify-content: end; }
216+
#usersettings_ui { width: fit-content; }
217+
#moin-usersettings form { width: fit-content; margin: 0 auto; }
218+
#moin-usersettings dt { float: none; width: unset; padding-right: 0pt; }
219+
#moin-usersettings .moin-form dl { display: grid; width: fit-content;
220+
grid: auto-flow / max-content max-content; column-gap: 14pt; }
221+
#moin-usersettings .moin-form dd { width: unset; }
222+
#moin-usersettings .moin-form dd input[type="text"],
223+
#moin-usersettings .moin-form dd input[type="password"],
224+
#moin-usersettings .moin-form dd input[type="email"] { width: 100%; }
225+
#quicklinks textarea, #subscriptions textarea { width: 100%; }
226+
#quicklinks div.tip, #subscriptions div.tip { width: unset; }
227+
228+
.moin-tags a, .moin-tags a:visited { display: inline-block; padding: 4pt; color: #242424; border-radius: 2pt;
229+
min-width: 40pt; }
230+
.moin-tags a:link:hover, .moin-tags a:visited:hover { color: white; background-color: var(--accent-hover) }
231+
232+
#moin-global-history tr td { border: none; }
233+
.moin-history-day-banner { background-color: var(--accent-lighter); }
234+
235+
#moin-content table > thead { background-color: var(--accent-lighter); }
236+
tr > th { background-color: var(--accent-lighter); }
237+
238+
#moin-initials { display: flex; flex-wrap: wrap; column-gap: 4pt; row-gap: 4pt;
239+
width: 100%; margin: 1em 0pt; }
240+
#moin-initials a { min-width: 20pt; height: fit-content; border: 2pt solid var(--accent) }
241+
#moin-initials a:hover { color: white; background-color: var(--accent-hover);
242+
border: 2pt solid var(--accent-hover) }
243+
#moin-initials a.selected,
244+
#moin-initials a.selected:hover { color: black; background-color: #b3b3b3; border: 2pt solid #b3b3b3;
245+
cursor: default; }
246+
247+
.moin-index-menu { display: flex; flex-wrap: wrap; column-gap: 6pt; row-gap: 6pt; }
248+
.moin-index-menu i, .moin-contenttype-selection i { margin-right: 3pt; }
249+
.moin-index-menu .moin-select-toggle { padding: 0pt; margin-right: 4pt; border: none; }
250+
.moin-index-menu .moin-select-toggle.moin-button:hover { background-color: white; color: black; }
251+
.moin-index-menu .moin-select-toggle.moin-button label { display: flex; justify-content: center;
252+
align-items: center; height: 100%; cursor: pointer; }
253+
.moin-index-menu input[type="checkbox"] { height: 14pt; width: 14pt; margin-right: 4pt; }
254+
255+
.moin-contenttype-selection form,
256+
.moin-namespace-selection,
257+
.moin-newitem-selection { border: none; }
258+
.moin-newitem-selection div.hint > p { padding: 0pt; margin: 12pt 0pt; }
259+
.moin-newitem-selection .moin-new-item,
260+
.moin-newitem-selection #jfu-fileupload { margin-left: 0pt; }
261+
262+
.moin-new-item .moin-button[type="submit"] { color: white; background-color: var(--accent); }
263+
.moin-new-item .moin-button[type="submit"]:hover { background-color: var(--accent-hover); }
264+
265+
.moin-mime-text::before { font-family: FontAwesome; content: "\f15c"; }
266+
.moin-mime-image::before { font-family: FontAwesome; content: "\f03e"; }
267+
.moin-mime-package::before { font-family: FontAwesome; content: "\f187"; }
268+
.moin-mime-video::before { font-family: FontAwesome; content: "\f03d"; }
269+
.moin-mime-application::before { font-family: FontAwesome; content: "\e4e5"; }
270+
.moin-mime-audio::before { font-family: FontAwesome; content: "\f025"; }
271+
272+
#moin-create-table tbody tr th { border: none; }
273+
#moin-create-table tbody tr > td { display: flex; flex-wrap: wrap; row-gap: 6pt;
274+
padding-left: 4pt; margin-bottom: 16pt; border: none; }
275+
276+
.zebra tbody tr:nth-child(2n), .zebra > tr:nth-child(2n+1) { background-color: unset; }
277+
278+
@media (max-width: 700pt) {
279+
#moin-main-wrapper { flex-direction: column; }
280+
header { min-height: unset; margin-right: 0pt; }
281+
header a { white-space: initial; }
282+
.moin-sitename { font-size: 1.2rem; }
283+
#moin-content { padding: 0pt 8pt; }
284+
285+
#moin-username, #moin-navibar { flex-direction: row; flex-wrap: wrap; }
286+
#moin-username a, #moin-navibar a { display: flex; column-gap: 6pt; white-space: nowrap; }
287+
#moin-username a span{ white-space: pre; }
288+
289+
#moin-content-data { margin-right: 0pt; }
290+
291+
#top-bar { height: fit-content; }
292+
#top-bar .moin-itemviews.panel.mobile { display: flex; }
293+
#top-bar .moin-itemviews.panel.desktop { display: none; }
294+
#top-bar .fa { display: none; }
295+
#top-bar, #top-bar-menu-content { position: relative; }
296+
#usersettings_ui, #moin-usersettings form { width: unset; }
297+
#moin-usersettings dl { column-gap: 10pt; row-gap: 6pt; max-width: 100vw; }
298+
#moin-usersettings dt { max-width: 44vw; }
299+
#moin-usersettings .moin-float-fix { padding: 0pt 4pt; }
300+
#moin-usersettings .moin-form dd { max-width: 48vw; }
301+
.moin-form dt { text-align: start; }
302+
#moin-pageinfo { margin-bottom: 10pt; }
303+
#moin-footer { padding: 0pt 8pt; }
304+
305+
.fa.global-history { height: 22pt; width: 22pt; }
306+
}
307+
308+
@media (min-width: 1000pt) {
309+
#moin-page { margin: 0pt auto; }
310+
}
43.6 KB
Binary file not shown.
Lines changed: 41 additions & 0 deletions
Loading
Lines changed: 1 addition & 0 deletions
Loading

0 commit comments

Comments
 (0)