Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/xianmin/hugo-theme-jane.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChen Xianmin <xianmin12@gmail.com>2022-09-06 14:41:43 +0300
committerChen Xianmin <xianmin12@gmail.com>2022-09-06 14:41:43 +0300
commitf5d49e7bd8b727729e9e692a9cd0a1cff45b9e2d (patch)
tree7286de3d68ca6a3593a5c61840cad8b38086efc2
parent0836ef453bd8cf9b147073558e33024ffabfa94f (diff)
refactor: menu style
-rw-r--r--assets/sass/_common/_normalize.scss392
-rw-r--r--assets/sass/_partial/_header.scss5
-rw-r--r--assets/sass/_partial/_header/_logo.scss3
-rw-r--r--assets/sass/_partial/_header/_menu-item.scss56
-rw-r--r--assets/sass/_partial/_header/_menu.scss64
-rw-r--r--assets/sass/jane.scss1
-rw-r--r--layouts/partials/header.html4
7 files changed, 232 insertions, 293 deletions
diff --git a/assets/sass/_common/_normalize.scss b/assets/sass/_common/_normalize.scss
index 23ec608..192eb9c 100644
--- a/assets/sass/_common/_normalize.scss
+++ b/assets/sass/_common/_normalize.scss
@@ -1,89 +1,76 @@
-/*! normalize.css v3.0.2 | MIT License | git.io/normalize */
+/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */
+
+/* Document
+ ========================================================================== */
/**
- * 1. Set default font family to sans-serif.
- * 2. Prevent iOS text size adjust after orientation change, without disabling
- * user zoom.
+ * 1. Correct the line height in all browsers.
+ * 2. Prevent adjustments of font size after orientation changes in iOS.
*/
html {
- font-family: sans-serif; /* 1 */
- -ms-text-size-adjust: 100%; /* 2 */
+ line-height: 1.15; /* 1 */
-webkit-text-size-adjust: 100%; /* 2 */
}
+/* Sections
+ ========================================================================== */
+
/**
- * Remove default margin.
+ * Remove the margin in all browsers.
*/
body {
margin: 0;
}
-/* HTML5 display definitions
- ========================================================================== */
-
/**
- * Correct `block` display not defined for any HTML5 element in IE 8/9.
- * Correct `block` display not defined for `details` or `summary` in IE 10/11
- * and Firefox.
- * Correct `block` display not defined for `main` in IE 11.
- */
-
-article,
-aside,
-details,
-figcaption,
-figure,
-footer,
-header,
-hgroup,
-main,
-menu,
-nav,
-section,
-summary {
+ * Render the `main` element consistently in IE.
+ */
+
+main {
display: block;
}
/**
- * 1. Correct `inline-block` display not defined in IE 8/9.
- * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.
+ * Correct the font size and margin on `h1` elements within `section` and
+ * `article` contexts in Chrome, Firefox, and Safari.
*/
-audio,
-canvas,
-progress,
-video {
- display: inline-block; /* 1 */
- vertical-align: baseline; /* 2 */
+h1 {
+ font-size: 2em;
+ margin: 0.67em 0;
}
+/* Grouping content
+ ========================================================================== */
+
/**
- * Prevent modern browsers from displaying `audio` without controls.
- * Remove excess height in iOS 5 devices.
+ * 1. Add the correct box sizing in Firefox.
+ * 2. Show the overflow in Edge and IE.
*/
-audio:not([controls]) {
- display: none;
- height: 0;
+hr {
+ box-sizing: content-box; /* 1 */
+ height: 0; /* 1 */
+ overflow: visible; /* 2 */
}
/**
- * Address `[hidden]` styling not present in IE 8/9/10.
- * Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22.
+ * 1. Correct the inheritance and scaling of font size in all browsers.
+ * 2. Correct the odd `em` font sizing in all browsers.
*/
-[hidden],
-template {
- display: none;
+pre {
+ font-family: monospace, monospace; /* 1 */
+ font-size: 1em; /* 2 */
}
-/* Links
+/* Text-level semantics
========================================================================== */
/**
- * Remove the gray background color from active links in IE 10.
+ * Remove the gray background on active links in IE 10.
*/
a {
@@ -91,63 +78,39 @@ a {
}
/**
- * Improve readability when focused and also mouse hovered in all browsers.
- */
-
-a:active,
-a:hover {
- outline: 0;
-}
-
-/* Text-level semantics
- ========================================================================== */
-
-/**
- * Address styling not present in IE 8/9/10/11, Safari, and Chrome.
+ * 1. Remove the bottom border in Chrome 57-
+ * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
*/
abbr[title] {
- border-bottom: 1px dotted;
+ border-bottom: none; /* 1 */
+ text-decoration: underline; /* 2 */
+ text-decoration: underline dotted; /* 2 */
}
/**
- * Address style set to `bolder` in Firefox 4+, Safari, and Chrome.
+ * Add the correct font weight in Chrome, Edge, and Safari.
*/
b,
strong {
- font-weight: bold;
-}
-
-/**
- * Address styling not present in Safari and Chrome.
- */
-
-dfn {
- font-style: italic;
-}
-
-/**
- * Address variable `h1` font-size and margin within `section` and `article`
- * contexts in Firefox 4+, Safari, and Chrome.
- */
-
-h1 {
- font-size: 2em;
- margin: 0.67em 0;
+ font-weight: bolder;
}
/**
- * Address styling not present in IE 8/9.
+ * 1. Correct the inheritance and scaling of font size in all browsers.
+ * 2. Correct the odd `em` font sizing in all browsers.
*/
-mark {
- background: #ff0;
- color: #000;
+code,
+kbd,
+samp {
+ font-family: monospace, monospace; /* 1 */
+ font-size: 1em; /* 2 */
}
/**
- * Address inconsistent and variable font size in all browsers.
+ * Add the correct font size in all browsers.
*/
small {
@@ -155,7 +118,8 @@ small {
}
/**
- * Prevent `sub` and `sup` affecting `line-height` in all browsers.
+ * Prevent `sub` and `sup` elements from affecting the line height in
+ * all browsers.
*/
sub,
@@ -166,262 +130,220 @@ sup {
vertical-align: baseline;
}
-sup {
- top: -0.5em;
-}
-
sub {
bottom: -0.25em;
}
+sup {
+ top: -0.5em;
+}
+
/* Embedded content
========================================================================== */
/**
- * Remove border when inside `a` element in IE 8/9/10.
+ * Remove the border on images inside links in IE 10.
*/
img {
- border: 0;
-}
-
-/**
- * Correct overflow not hidden in IE 9/10/11.
- */
-
-svg:not(:root) {
- overflow: hidden;
+ border-style: none;
}
-/* Grouping content
+/* Forms
========================================================================== */
/**
- * Address margin not present in IE 8/9 and Safari.
+ * 1. Change the font styles in all browsers.
+ * 2. Remove the margin in Firefox and Safari.
*/
-figure {
- margin: 1em;
-}
-
-/**
- * Address differences between Firefox and other browsers.
- */
-
-hr {
- -moz-box-sizing: content-box;
- box-sizing: content-box;
- height: 0;
+button,
+input,
+optgroup,
+select,
+textarea {
+ font-family: inherit; /* 1 */
+ font-size: 100%; /* 1 */
+ line-height: 1.15; /* 1 */
+ margin: 0; /* 2 */
}
/**
- * Contain overflow in all browsers.
+ * Show the overflow in IE.
+ * 1. Show the overflow in Edge.
*/
-pre {
- overflow: auto;
+button,
+input { /* 1 */
+ overflow: visible;
}
/**
- * Address odd `em`-unit font size rendering in all browsers.
+ * Remove the inheritance of text transform in Edge, Firefox, and IE.
+ * 1. Remove the inheritance of text transform in Firefox.
*/
-code,
-kbd,
-pre,
-samp {
- font-family: monospace, monospace;
- font-size: 1em;
+button,
+select { /* 1 */
+ text-transform: none;
}
-/* Forms
- ========================================================================== */
-
-/**
- * Known limitation: by default, Chrome and Safari on OS X allow very limited
- * styling of `select`, unless a `border` property is set.
- */
-
/**
- * 1. Correct color not being inherited.
- * Known issue: affects color of disabled elements.
- * 2. Correct font properties not being inherited.
- * 3. Address margins set differently in Firefox 4+, Safari, and Chrome.
+ * Correct the inability to style clickable types in iOS and Safari.
*/
button,
-input,
-optgroup,
-select,
-textarea {
- color: inherit; /* 1 */
- font: inherit; /* 2 */
- margin: 0; /* 3 */
+[type="button"],
+[type="reset"],
+[type="submit"] {
+ -webkit-appearance: button;
}
/**
- * Address `overflow` set to `hidden` in IE 8/9/10/11.
+ * Remove the inner border and padding in Firefox.
*/
-button {
- overflow: visible;
+button::-moz-focus-inner,
+[type="button"]::-moz-focus-inner,
+[type="reset"]::-moz-focus-inner,
+[type="submit"]::-moz-focus-inner {
+ border-style: none;
+ padding: 0;
}
/**
- * Address inconsistent `text-transform` inheritance for `button` and `select`.
- * All other form control elements do not inherit `text-transform` values.
- * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.
- * Correct `select` style inheritance in Firefox.
+ * Restore the focus styles unset by the previous rule.
*/
-button,
-select {
- text-transform: none;
+button:-moz-focusring,
+[type="button"]:-moz-focusring,
+[type="reset"]:-moz-focusring,
+[type="submit"]:-moz-focusring {
+ outline: 1px dotted ButtonText;
}
/**
- * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
- * and `video` controls.
- * 2. Correct inability to style clickable `input` types in iOS.
- * 3. Improve usability and consistency of cursor style between image-type
- * `input` and others.
+ * Correct the padding in Firefox.
*/
-button,
-html input[type="button"], /* 1 */
-input[type="reset"],
-input[type="submit"] {
- -webkit-appearance: button; /* 2 */
- cursor: pointer; /* 3 */
+fieldset {
+ padding: 0.35em 0.75em 0.625em;
}
/**
- * Re-set default cursor for disabled elements.
+ * 1. Correct the text wrapping in Edge and IE.
+ * 2. Correct the color inheritance from `fieldset` elements in IE.
+ * 3. Remove the padding so developers are not caught out when they zero out
+ * `fieldset` elements in all browsers.
*/
-button[disabled],
-html input[disabled] {
- cursor: default;
+legend {
+ box-sizing: border-box; /* 1 */
+ color: inherit; /* 2 */
+ display: table; /* 1 */
+ max-width: 100%; /* 1 */
+ padding: 0; /* 3 */
+ white-space: normal; /* 1 */
}
/**
- * Remove inner padding and border in Firefox 4+.
+ * Add the correct vertical alignment in Chrome, Firefox, and Opera.
*/
-button::-moz-focus-inner,
-input::-moz-focus-inner {
- border: 0;
- padding: 0;
+progress {
+ vertical-align: baseline;
}
/**
- * Address Firefox 4+ setting `line-height` on `input` using `!important` in
- * the UA stylesheet.
+ * Remove the default vertical scrollbar in IE 10+.
*/
-input {
- line-height: normal;
+textarea {
+ overflow: auto;
}
/**
- * It's recommended that you don't attempt to style these elements.
- * Firefox's implementation doesn't respect box-sizing, padding, or width.
- *
- * 1. Address box sizing set to `content-box` in IE 8/9/10.
- * 2. Remove excess padding in IE 8/9/10.
+ * 1. Add the correct box sizing in IE 10.
+ * 2. Remove the padding in IE 10.
*/
-input[type="checkbox"],
-input[type="radio"] {
+[type="checkbox"],
+[type="radio"] {
box-sizing: border-box; /* 1 */
padding: 0; /* 2 */
}
/**
- * Fix the cursor style for Chrome's increment/decrement buttons. For certain
- * `font-size` values of the `input`, it causes the cursor style of the
- * decrement button to change from `default` to `text`.
+ * Correct the cursor style of increment and decrement buttons in Chrome.
*/
-input[type="number"]::-webkit-inner-spin-button,
-input[type="number"]::-webkit-outer-spin-button {
+[type="number"]::-webkit-inner-spin-button,
+[type="number"]::-webkit-outer-spin-button {
height: auto;
}
/**
- * 1. Address `appearance` set to `searchfield` in Safari and Chrome.
- * 2. Address `box-sizing` set to `border-box` in Safari and Chrome
- * (include `-moz` to future-proof).
+ * 1. Correct the odd appearance in Chrome and Safari.
+ * 2. Correct the outline style in Safari.
*/
-input[type="search"] {
+[type="search"] {
-webkit-appearance: textfield; /* 1 */
- -moz-box-sizing: content-box;
- -webkit-box-sizing: content-box; /* 2 */
- box-sizing: content-box;
+ outline-offset: -2px; /* 2 */
}
/**
- * Remove inner padding and search cancel button in Safari and Chrome on OS X.
- * Safari (but not Chrome) clips the cancel button when the search input has
- * padding (and `textfield` appearance).
+ * Remove the inner padding in Chrome and Safari on macOS.
*/
-input[type="search"]::-webkit-search-cancel-button,
-input[type="search"]::-webkit-search-decoration {
+[type="search"]::-webkit-search-decoration {
-webkit-appearance: none;
}
/**
- * Define consistent border, margin, and padding.
+ * 1. Correct the inability to style clickable types in iOS and Safari.
+ * 2. Change font properties to `inherit` in Safari.
*/
-fieldset {
- border: 1px solid #c0c0c0;
- margin: 0 2px;
- padding: 0.35em 0.625em 0.75em;
+::-webkit-file-upload-button {
+ -webkit-appearance: button; /* 1 */
+ font: inherit; /* 2 */
}
-/**
- * 1. Correct `color` not being inherited in IE 8/9/10/11.
- * 2. Remove padding so people aren't caught out if they zero out fieldsets.
- */
-
-legend {
- border: 0; /* 1 */
- padding: 0; /* 2 */
-}
+/* Interactive
+ ========================================================================== */
-/**
- * Remove default vertical scrollbar in IE 8/9/10/11.
+/*
+ * Add the correct display in Edge, IE 10+, and Firefox.
*/
-textarea {
- overflow: auto;
+details {
+ display: block;
}
-/**
- * Don't inherit the `font-weight` (applied by a rule above).
- * NOTE: the default cannot safely be changed in Chrome and Safari on OS X.
+/*
+ * Add the correct display in all browsers.
*/
-optgroup {
- font-weight: bold;
+summary {
+ display: list-item;
}
-/* Tables
+/* Misc
========================================================================== */
/**
- * Remove most spacing between table cells.
+ * Add the correct display in IE 10+.
*/
-table {
- border-collapse: collapse;
- border-spacing: 0;
+template {
+ display: none;
}
-td,
-th {
- padding: 0;
+/**
+ * Add the correct display in IE 10.
+ */
+
+[hidden] {
+ display: none;
}
diff --git a/assets/sass/_partial/_header.scss b/assets/sass/_partial/_header.scss
index 1ab1917..866a53a 100644
--- a/assets/sass/_partial/_header.scss
+++ b/assets/sass/_partial/_header.scss
@@ -3,7 +3,10 @@
// ==============================
.header {
- @include clearfix;
+ @include clearfix;
+
+ display: flex;
+ flex-wrap: wrap;
@import '_header/logo';
@import '_header/menu';
diff --git a/assets/sass/_partial/_header/_logo.scss b/assets/sass/_partial/_header/_logo.scss
index f8c77b8..b213595 100644
--- a/assets/sass/_partial/_header/_logo.scss
+++ b/assets/sass/_partial/_header/_logo.scss
@@ -3,9 +3,6 @@
// =============================
.logo-wrapper {
- float: left;
- padding-left: 15px;
-
.logo {
font-size: $logo-font-size;
font-family: $logo-font-family;
diff --git a/assets/sass/_partial/_header/_menu-item.scss b/assets/sass/_partial/_header/_menu-item.scss
new file mode 100644
index 0000000..1449a3d
--- /dev/null
+++ b/assets/sass/_partial/_header/_menu-item.scss
@@ -0,0 +1,56 @@
+.menu-item {
+ display: block;
+ height: 100%;
+ min-height: 2em;
+ margin: 0 1em;
+ position: relative;
+
+ &:hover {
+ border-bottom: 2px solid $theme-color;
+
+ .menu-item-link {
+ color: $theme-color;
+ }
+ }
+
+ .menu-item-link {
+ display: flex;
+ align-items: center;
+ height: 100%;
+ }
+
+ .submenu {
+ visibility: hidden;
+ position: absolute;
+ min-width: 100%;
+ transition: 0.2s 1s;
+ list-style: none;
+ padding: 0;
+ background: #fff;
+ white-space: nowrap;
+ border: 1px solid #ddd;
+ border-bottom: none;
+ transition: 0.2s 0.2s; /* delay of seconds on hover off */
+ z-index: 99;
+
+ .submenu-item {
+ border-bottom: 1px solid #ddd;
+
+ &:hover {
+ background-color: #f5f5f5;
+ a {
+ color: $theme-color;
+ }
+ }
+
+ a {
+ padding: 12px;
+ }
+ }
+ }
+
+ &:hover .submenu {
+ visibility: visible;
+ transition-delay: 0s; /* react immediately on hover */
+ }
+}
diff --git a/assets/sass/_partial/_header/_menu.scss b/assets/sass/_partial/_header/_menu.scss
index 691dfe5..c4aeaf8 100644
--- a/assets/sass/_partial/_header/_menu.scss
+++ b/assets/sass/_partial/_header/_menu.scss
@@ -3,60 +3,24 @@
// =============================
.site-navbar {
+ margin-left: auto;
+
+ // reset default ul
+ ul {
+ margin: 0
+ }
+
.menu {
- float: right;
- padding-right: 15px;
+ display: flex;
+ height: 100%;
font-family: $global-serif-font-family;
.active {
- font-weight: 700;
+ font-weight: bold;
+ border-bottom: 2px solid;
}
-
- .menu-item {
- display: inline-block;
- margin-left: 1em;
- margin-right: 1em;
- position: relative;
-
- & + .menu-item {
- margin-left: $menu-item-margin-left;;
- }
-
- .submenu {
- visibility: hidden;
- position: absolute;
- top: 120%;
- // left: 50%;
- transition: 0.2s 1s;
- list-style: none;
- padding: 0;
- background: #fff;
- white-space:nowrap;
- border: 1px solid #ddd;
- border-bottom: none;
- transition: 0.2s 0.2s; /* delay of seconds on hover off */
- z-index: 99;
-
- li {
- border-bottom: 1px solid #ddd;
-
- a {
- padding: 12px;
- }
- }
- }
- &:hover .submenu {
- visibility: visible;
- transition-delay: 0s; /* react immediately on hover */
- }
-
- // @include underline-from-center;
- }
-
- .menu-item-link {
- font-size: $menu-link-font-size;
- }
+ @import "./menu-item";
}
}
@@ -65,10 +29,6 @@
font-size: 11px;
}
-.menu a:hover {
- color: $theme-color;
-}
-
@include max-screen() {
.site-navbar {
display: none;
diff --git a/assets/sass/jane.scss b/assets/sass/jane.scss
index 88734b7..b759aad 100644
--- a/assets/sass/jane.scss
+++ b/assets/sass/jane.scss
@@ -1,6 +1,7 @@
@import "_custom/custom";
@import "_variables";
+@import "_common/normalize";
@import "_common/utils";
@import "_common/animation";
diff --git a/layouts/partials/header.html b/layouts/partials/header.html
index f87fe28..0895ca2 100644
--- a/layouts/partials/header.html
+++ b/layouts/partials/header.html
@@ -18,7 +18,7 @@
<a class="menu-item-link menu-parent" href="{{ .URL | absLangURL | safeURL }}">{{ .Name }}</a>
<ul class="submenu">
{{ range .Children }}
- <li>
+ <li class="submenu-item">
<a href="{{ .URL | absLangURL | safeURL }}">{{ .Name }}</a>
</li>
{{ end }}
@@ -58,7 +58,7 @@
<ul class="submenu">
{{ range .Site.Home.AllTranslations }}
{{ if ne ($.Scratch.Get "language") .Language }}
- <li>
+ <li class="submenu-item">
<a href="{{ .Permalink }}">{{ .Language.LanguageName }}</a>
</li>
{{ end }}