506 lines
		
	
	
	
		
			8.4 KiB
		
	
	
	
		
			SCSS
		
	
	
	
	
	
		
		
			
		
	
	
			506 lines
		
	
	
	
		
			8.4 KiB
		
	
	
	
		
			SCSS
		
	
	
	
	
	
|  | /** === Main menu === */ | |||
|  | 
 | |||
|  | .main-navigation { | |||
|  | 
 | |||
|  | 	display: block; | |||
|  | 	margin-top: #{0.25 * $size__spacing-unit}; | |||
|  | 
 | |||
|  | 	body.page & { | |||
|  | 		display: block; | |||
|  | 	} | |||
|  | 
 | |||
|  | 	> div { | |||
|  | 		display: inline; | |||
|  | 	} | |||
|  | 
 | |||
|  | 	/* Un-style buttons */ | |||
|  | 	button { | |||
|  | 		display: inline-block; | |||
|  | 		border: none; | |||
|  | 		padding: 0; | |||
|  | 		margin: 0; | |||
|  | 		font-family: $font__heading; | |||
|  | 		font-weight: 700; | |||
|  | 		line-height: $font__line-height-heading; | |||
|  | 		text-decoration: none; | |||
|  | 		background: transparent; | |||
|  | 		color: inherit; | |||
|  | 		cursor: pointer; | |||
|  | 		transition: background 250ms ease-in-out, | |||
|  | 		            transform 150ms ease; | |||
|  | 		-webkit-appearance: none; | |||
|  | 		-moz-appearance: none; | |||
|  | 
 | |||
|  | 		&:hover, | |||
|  | 		&:focus { | |||
|  | 			background: transparent; | |||
|  | 		} | |||
|  | 
 | |||
|  | 		&:focus { | |||
|  | 			outline: 1px solid transparent; | |||
|  | 			outline-offset: -4px; | |||
|  | 		} | |||
|  | 
 | |||
|  | 		&:active { | |||
|  | 			transform: scale(0.99); | |||
|  | 		} | |||
|  | 	} | |||
|  | 
 | |||
|  | 	.main-menu { | |||
|  | 
 | |||
|  | 		display: inline-block; | |||
|  | 		margin: 0; | |||
|  | 		padding: 0; | |||
|  | 
 | |||
|  | 		> li { | |||
|  | 
 | |||
|  | 			color: $color__link; | |||
|  | 			display: inline; | |||
|  | 			position: relative; | |||
|  | 
 | |||
|  | 			> a { | |||
|  | 
 | |||
|  | 				font-weight: 700; | |||
|  | 				color: $color__link; | |||
|  | 				margin-right: #{0.5 * $size__spacing-unit}; | |||
|  | 
 | |||
|  | 				+ svg { | |||
|  | 					margin-right: #{0.5 * $size__spacing-unit}; | |||
|  | 				} | |||
|  | 
 | |||
|  | 				&:hover, | |||
|  | 				&:hover + svg { | |||
|  | 					color: $color__link-hover; | |||
|  | 				} | |||
|  | 			} | |||
|  | 
 | |||
|  | 			&.menu-item-has-children { | |||
|  | 
 | |||
|  | 				display: inline-block; | |||
|  | 				position: inherit; | |||
|  | 
 | |||
|  | 				@include media(tablet) { | |||
|  | 					position: relative; | |||
|  | 				} | |||
|  | 
 | |||
|  | 				> a { | |||
|  | 					margin-right: #{0.125 * $size__spacing-unit}; | |||
|  | 				} | |||
|  | 
 | |||
|  | 				& > a, | |||
|  | 				.menu-item-has-children > a { | |||
|  | 
 | |||
|  | 					&:after { | |||
|  | 						content: ""; | |||
|  | 						display: none; | |||
|  | 					} | |||
|  | 				} | |||
|  | 
 | |||
|  | 				.submenu-expand { | |||
|  | 
 | |||
|  | 					display: inline-block; | |||
|  | 					margin-right: #{0.25 * $size__spacing-unit}; | |||
|  | 
 | |||
|  | 					/* Priority+ Menu */ | |||
|  | 					&.main-menu-more-toggle { | |||
|  | 
 | |||
|  | 						position: relative; | |||
|  | 						height: 24px; | |||
|  | 						line-height: $font__line-height-heading; | |||
|  | 						width: 24px; | |||
|  | 						padding: 0; | |||
|  | 						margin-left: #{0.5 * $size__spacing-unit}; | |||
|  | 
 | |||
|  | 						svg { | |||
|  | 							height: 24px; | |||
|  | 							width: 24px; | |||
|  | 							top: #{-0.125 * $size__spacing-unit}; | |||
|  | 							vertical-align: text-bottom; | |||
|  | 						} | |||
|  | 					} | |||
|  | 
 | |||
|  | 					.wp-customizer-unloading &, | |||
|  | 					&.is-empty { | |||
|  | 						display: none; | |||
|  | 					} | |||
|  | 
 | |||
|  | 					svg { | |||
|  | 						position: relative; | |||
|  | 						top: 0.2rem; | |||
|  | 					} | |||
|  | 				} | |||
|  | 			} | |||
|  | 
 | |||
|  | 			&:last-child > a, | |||
|  | 			&:last-child.menu-item-has-children .submenu-expand { | |||
|  | 				margin-right: 0; | |||
|  | 			} | |||
|  | 		} | |||
|  | 	} | |||
|  | 
 | |||
|  | 	.sub-menu { | |||
|  | 
 | |||
|  | 		background-color: $color__link; | |||
|  | 		color: $color__background-body; | |||
|  | 		list-style: none; | |||
|  | 		padding-left: 0; | |||
|  | 
 | |||
|  | 		position: absolute; | |||
|  | 		opacity: 0; | |||
|  | 		left: -9999px; | |||
|  | 		z-index: 99999; | |||
|  | 
 | |||
|  | 		@include media(tablet) { | |||
|  | 			width: auto; | |||
|  | 			min-width: -moz-max-content; | |||
|  | 			min-width: -webkit-max-content; | |||
|  | 			min-width: max-content; | |||
|  | 		} | |||
|  | 
 | |||
|  | 		> li { | |||
|  | 
 | |||
|  | 			display: block; | |||
|  | 			float: none; | |||
|  | 			position: relative; | |||
|  | 
 | |||
|  | 			&.menu-item-has-children { | |||
|  | 
 | |||
|  | 				.submenu-expand { | |||
|  | 					display: inline-block; | |||
|  | 					position: absolute; | |||
|  | 					width: calc( 24px + #{$size__spacing-unit} ); | |||
|  | 					right: 0; | |||
|  | 					top: calc( .125 * #{$size__spacing-unit} ); | |||
|  | 					bottom: 0; | |||
|  | 					color: white; | |||
|  | 					line-height: 1; | |||
|  | 					padding: calc( .5 * #{$size__spacing-unit} ); | |||
|  | 
 | |||
|  | 					svg { | |||
|  | 						top: 0; | |||
|  | 					} | |||
|  | 				} | |||
|  | 
 | |||
|  | 				.submenu-expand { | |||
|  | 					margin-right: 0; | |||
|  | 				} | |||
|  | 
 | |||
|  | 				@include media(tablet) { | |||
|  | 
 | |||
|  | 					.menu-item-has-children > a { | |||
|  | 
 | |||
|  | 						&:after { | |||
|  | 							content: "\203a"; | |||
|  | 						} | |||
|  | 					} | |||
|  | 				} | |||
|  | 			} | |||
|  | 
 | |||
|  | 			> a, | |||
|  | 			> .menu-item-link-return { | |||
|  | 
 | |||
|  | 				color: $color__background-body; | |||
|  | 				display: block; | |||
|  | 				line-height: $font__line-height-heading; | |||
|  | 				text-shadow: none; | |||
|  | 				padding: calc( .5 * #{$size__spacing-unit} ) calc( 24px + #{$size__spacing-unit} ) calc( .5 * #{$size__spacing-unit} ) $size__spacing-unit; | |||
|  | 				white-space: nowrap; | |||
|  | 
 | |||
|  | 				&:hover, | |||
|  | 				&:focus { | |||
|  | 					background: $color__link-hover; | |||
|  | 
 | |||
|  | 					&:after { | |||
|  | 						background: $color__link-hover; | |||
|  | 					} | |||
|  | 				} | |||
|  | 			} | |||
|  | 
 | |||
|  | 			> .menu-item-link-return { | |||
|  | 				width: 100%; | |||
|  | 				font-size: $font__size_base; | |||
|  | 				font-weight: normal; | |||
|  | 				text-align: left; | |||
|  | 			} | |||
|  | 
 | |||
|  | 			> a:empty { | |||
|  | 				display: none; | |||
|  | 			} | |||
|  | 
 | |||
|  | 			&.mobile-parent-nav-menu-item { | |||
|  | 
 | |||
|  | 				display: none; | |||
|  | 				font-size: $font__size-sm; | |||
|  | 				font-weight: normal; | |||
|  | 
 | |||
|  | 				svg { | |||
|  | 					position: relative; | |||
|  | 					top: 0.2rem; | |||
|  | 					margin-right: calc( .25 * #{$size__spacing-unit} ); | |||
|  | 				} | |||
|  | 			} | |||
|  | 		} | |||
|  | 	} | |||
|  | 
 | |||
|  | 	/* | |||
|  | 	 * Sub-menu styles | |||
|  | 	 * | |||
|  | 	 * :focus-within needs its own selector so other similar | |||
|  | 	 * selectors don’t get ignored if a browser doesn’t recognize it | |||
|  | 	 */ | |||
|  | 	.main-menu .menu-item-has-children:not(.off-canvas):focus-within > .sub-menu { | |||
|  | 
 | |||
|  | 		display: block; | |||
|  | 		left: 0; | |||
|  | 		margin-top: 0; | |||
|  | 		opacity: 1; | |||
|  | 		width: auto; | |||
|  | 		min-width: 100%; | |||
|  | 
 | |||
|  | 
 | |||
|  | 		/* Non-mobile position */ | |||
|  | 		@include media(tablet) { | |||
|  | 			display: block; | |||
|  | 			margin-top: 0; | |||
|  | 			opacity: 1; | |||
|  | 			position: absolute; | |||
|  | 			left: 0; | |||
|  | 			right: auto; | |||
|  | 			top: auto; | |||
|  | 			bottom: auto; | |||
|  | 			height: auto; | |||
|  | 			min-width: -moz-max-content; | |||
|  | 			min-width: -webkit-max-content; | |||
|  | 			min-width: max-content; | |||
|  | 			transform: none; | |||
|  | 		} | |||
|  | 
 | |||
|  | 		&.hidden-links { | |||
|  | 			left: 0; | |||
|  | 			width: 100%; | |||
|  | 			display: table; | |||
|  | 			position: absolute; | |||
|  | 
 | |||
|  | 			@include media(tablet) { | |||
|  | 				right: 0; | |||
|  | 				left: auto; | |||
|  | 				display: block; | |||
|  | 				width: max-content; | |||
|  | 			} | |||
|  | 		} | |||
|  | 
 | |||
|  | 		.submenu-expand { | |||
|  | 			display: none; | |||
|  | 		} | |||
|  | 
 | |||
|  | 		.sub-menu { | |||
|  | 			display: block; | |||
|  | 			margin-top: inherit; | |||
|  | 			position: relative; | |||
|  | 			width: 100%; | |||
|  | 			left: 0; | |||
|  | 			opacity: 1; | |||
|  | 
 | |||
|  | 			/* Non-mobile position */ | |||
|  | 			@include media(tablet) { | |||
|  | 				float: none; | |||
|  | 				max-width: 100%; | |||
|  | 			} | |||
|  | 		} | |||
|  | 
 | |||
|  | 		/* Nested sub-menu dashes */ | |||
|  | 		.sub-menu { | |||
|  | 			counter-reset: submenu; | |||
|  | 		} | |||
|  | 
 | |||
|  | 		.sub-menu > li > a::before { | |||
|  | 			font-family: $font__body; | |||
|  | 			font-weight: normal; | |||
|  | 			content: "\2013\00a0" counters(submenu, "\2013\00a0", none); | |||
|  | 			counter-increment: submenu | |||
|  | 		} | |||
|  | 	} | |||
|  | 
 | |||
|  | 	.main-menu .menu-item-has-children:not(.off-canvas):hover > .sub-menu, | |||
|  | 	.main-menu .menu-item-has-children:not(.off-canvas):focus > .sub-menu, | |||
|  | 	.main-menu .menu-item-has-children.is-focused:not(.off-canvas) > .sub-menu { | |||
|  | 
 | |||
|  | 		display: block; | |||
|  | 		left: 0; | |||
|  | 		margin-top: 0; | |||
|  | 		opacity: 1; | |||
|  | 		width: auto; | |||
|  | 		min-width: 100%; | |||
|  | 
 | |||
|  | 
 | |||
|  | 		/* Non-mobile position */ | |||
|  | 		@include media(tablet) { | |||
|  | 			display: block; | |||
|  | 			float: none; | |||
|  | 			margin-top: 0; | |||
|  | 			opacity: 1; | |||
|  | 			position: absolute; | |||
|  | 			left: 0; | |||
|  | 			right: auto; | |||
|  | 			top: auto; | |||
|  | 			bottom: auto; | |||
|  | 			height: auto; | |||
|  | 			min-width: -moz-max-content; | |||
|  | 			min-width: -webkit-max-content; | |||
|  | 			min-width: max-content; | |||
|  | 			transform: none; | |||
|  | 		} | |||
|  | 
 | |||
|  | 		&.hidden-links { | |||
|  | 			left: 0; | |||
|  | 			width: 100%; | |||
|  | 			display: table; | |||
|  | 			position: absolute; | |||
|  | 
 | |||
|  | 			@include media(tablet) { | |||
|  | 				right: 0; | |||
|  | 				left: auto; | |||
|  | 				display: table; | |||
|  | 				width: max-content; | |||
|  | 			} | |||
|  | 		} | |||
|  | 
 | |||
|  | 		.submenu-expand { | |||
|  | 			display: none; | |||
|  | 		} | |||
|  | 
 | |||
|  | 		.sub-menu { | |||
|  | 			display: block; | |||
|  | 			margin-top: inherit; | |||
|  | 			position: relative; | |||
|  | 			width: 100%; | |||
|  | 			left: 0; | |||
|  | 			opacity: 1; | |||
|  | 
 | |||
|  | 			/* Non-mobile position */ | |||
|  | 			@include media(tablet) { | |||
|  | 				float: none; | |||
|  | 				max-width: 100%; | |||
|  | 			} | |||
|  | 		} | |||
|  | 
 | |||
|  | 		/* Nested sub-menu dashes */ | |||
|  | 		.sub-menu { | |||
|  | 			counter-reset: submenu; | |||
|  | 		} | |||
|  | 
 | |||
|  | 		.sub-menu > li > a::before { | |||
|  | 			font-family: $font__body; | |||
|  | 			font-weight: normal; | |||
|  | 			content: "\2013\00a0" counters(submenu, "\2013\00a0", none); | |||
|  | 			counter-increment: submenu | |||
|  | 		} | |||
|  | 	} | |||
|  | 
 | |||
|  | 	/** | |||
|  | 	 * Fade-in animation for top-level submenus | |||
|  | 	 */ | |||
|  | 	.main-menu > .menu-item-has-children:not(.off-canvas):hover > .sub-menu { | |||
|  | 		animation: fade_in 0.1s forwards; | |||
|  | 	} | |||
|  | 
 | |||
|  | 	/** | |||
|  | 	 * Off-canvas touch device styles | |||
|  | 	 */ | |||
|  | 	.main-menu .menu-item-has-children.off-canvas .sub-menu { | |||
|  | 
 | |||
|  | 		.submenu-expand .svg-icon { | |||
|  | 			transform: rotate(270deg); | |||
|  | 		} | |||
|  | 
 | |||
|  | 		.sub-menu { | |||
|  | 			opacity: 0; | |||
|  | 			position: absolute; | |||
|  | 			z-index: 0; | |||
|  | 			transform: translateX(-100%); | |||
|  | 		} | |||
|  | 
 | |||
|  | 		li:hover, | |||
|  | 		li:focus, | |||
|  | 		li > a:hover, | |||
|  | 		li > a:focus { | |||
|  | 			background-color: transparent; | |||
|  | 		} | |||
|  | 
 | |||
|  | 		> li > a, | |||
|  | 		> li > .menu-item-link-return { | |||
|  | 			white-space: inherit; | |||
|  | 		} | |||
|  | 
 | |||
|  | 		&.expanded-true { | |||
|  | 
 | |||
|  | 			display: table; | |||
|  | 			margin-top: 0; | |||
|  | 			opacity: 1; | |||
|  | 			padding-left: 0; | |||
|  | 
 | |||
|  | 			/* Mobile position */ | |||
|  | 			left: 0; | |||
|  | 			top: 0; | |||
|  | 			right: 0; | |||
|  | 			bottom: 0; | |||
|  | 			position: fixed; | |||
|  | 			z-index: 100000; /* Make sure appears above mobile admin bar */ | |||
|  | 			width: 100vw; | |||
|  | 			height:  100vh; | |||
|  | 			max-width: 100vw; | |||
|  | 			transform: translateX(+100%); | |||
|  | 			animation: slide_in_right 0.3s forwards; | |||
|  | 
 | |||
|  | 			> .mobile-parent-nav-menu-item { | |||
|  | 				display: block; | |||
|  | 			} | |||
|  | 
 | |||
|  | 			/* Prevent menu from being blocked by admin bar */ | |||
|  | 			.admin-bar & { | |||
|  | 				top: 46px; | |||
|  | 				height: calc( 100vh - 46px ); | |||
|  | 
 | |||
|  | 				.sub-menu.expanded-true { | |||
|  | 					top: 0; | |||
|  | 				} | |||
|  | 
 | |||
|  | 				/* WP core breakpoint */ | |||
|  | 				@media only screen and ( min-width: 782px ) { | |||
|  | 					top: 32px; | |||
|  | 					height: calc( 100vh - 32px ); | |||
|  | 
 | |||
|  | 					.sub-menu.expanded-true { | |||
|  | 						top: 0; | |||
|  | 					} | |||
|  | 				} | |||
|  | 			} | |||
|  | 		} | |||
|  | 	} | |||
|  | 
 | |||
|  | 	// Hide duplicate menu-more-link when re-loading a menu in the customizer
 | |||
|  | 	.main-menu-more { | |||
|  | 		&:nth-child(n+3) { | |||
|  | 			display: none; | |||
|  | 		} | |||
|  | 	} | |||
|  | 
 | |||
|  | } | |||
|  | 
 | |||
|  | /* Menu animation */ | |||
|  | 
 | |||
|  | @keyframes slide_in_right { | |||
|  | 	100% { | |||
|  | 		transform: translateX(0%); | |||
|  | 	} | |||
|  | } | |||
|  | 
 | |||
|  | @keyframes fade_in { | |||
|  | 	from { | |||
|  | 		opacity: 0; | |||
|  | 	} | |||
|  | 	to { | |||
|  | 		opacity: 1; | |||
|  | 	} | |||
|  | } |