:root { --main-bg-color: rgb(242, 244, 247); --menu-hover-bg-color: color-mod(var(--main-bg-color) s(+8%)); --active-menu-color: var(--darkgrey); --active-menu-bg-color: color-mod(var(--main-bg-color) l(-3%) s(+8%)); } /* Global Layout /* ---------------------------------------------------------- */ /* Main viewport, contains main content, and alerts */ /* Use `position: fixed`, covering full window area so scrolling on mobile doesn't trigger elastic scroll */ .gh-app { position: fixed; top: 0; right: 0; bottom: 0; left: 0; display: flex; flex-direction: column; overflow: hidden; height: 100%; } /* Content viewport, contains everything else */ .gh-viewport { flex-grow: 1; display: flex; overflow: hidden; max-height: 100%; } .gh-main { position: relative; flex-grow: 1; display: flex; flex-direction: column; background: var(--main-bg-color); overflow-y: auto; /* prevent horizontal scroll in IE11 */ overflow-x: hidden; -webkit-overflow-scrolling: touch; } .gh-main-white { background: var(--white); } /* Flexbox fix. https://github.com/TryGhost/Ghost/issues/5804#issuecomment-141416812 */ .gh-main > section { width: 100%; position: relative; /* for the editor in safari */ } .gh-user-avatar { position: relative; flex-shrink: 0; display: block; width: 34px; height: 34px; margin: 0px 8px 0 0; background-position: 50%; background-size: cover; border-radius: 100%; border: 1px solid color-mod(var(--main-bg-color) l(-8%)); } .gh-user-name { margin: -2px 8px 2px 0; padding: 0 0 3px 0; word-break: break-all; font-weight: 600; line-height: 1.1em; max-width: 160px; text-overflow: ellipsis; overflow-x: hidden; white-space: nowrap; } .gh-user-email { margin: -1px 8px -3px 0; padding: 0 0 3px 0; word-break: break-all; font-size: 1.25rem; font-weight: 400; line-height: 1.1em; color: var(--middarkgrey); max-width: 160px; text-overflow: ellipsis; overflow-x: hidden; white-space: nowrap; } /* Global Nav /* ---------------------------------------------------------- */ .gh-nav { position: relative; z-index: 800; flex: 0 0 268px; display: flex; flex-direction: column; min-width: 0; background: var(--white); transform: translateX(0); border-right: 1px solid color-mod(var(--main-bg-color) l(-4%)); } .gh-nav-menu { flex-shrink: 0; display: flex; align-items: center; padding: 24px 0px 11px; margin: 0 20px; } .gh-nav-menu-dropdown .dropdown-menu { top: -344px; left: 20px; margin: 10px 0 0; box-shadow: 0 0 1px rgba(0, 0, 0, 0.1), 0 0 3px rgba(0, 0, 0, 0.08), 0 18px 45px -5px rgba(0, 0, 0, 0.15); min-width: 280px; padding: 6px 0; } .gh-nav-menu-dropdown .dropdown-menu>li>a, .gh-nav-menu-dropdown .dropdown-menu>li>button { font-size: 1.4rem; margin: 0; width: unset; padding: 10px 24px 11px; } .gh-nav-menu-dropdown .dropdown-menu>li>button { width: 100%; } .gh-nav-menu-dropdown .dropdown-menu .divider { margin: 6px 0; } .gh-nav-menu-dropdown .dropdown-menu svg { width: 16px; height: 16px; } .gh-nav-menu-dropdown.ember-basic-dropdown--transitioning-in { animation: fade-in-scale 0.2s; animation-fill-mode: forwards; } .gh-nav-menu-dropdown.ember-basic-dropdown--transitioning-out { animation: fade-out 0.5s; animation-fill-mode: forwards; } .gh-nav-menu-icon { flex-shrink: 0; margin-right: 10px; width: 32px; height: 32px; background-color: transparent; background-size: 32px; border-radius: 6px; } .gh-nav-menu-details { display: flex; align-items: center; flex-grow: 1; padding-right: 10px; min-width: 0; /* TODO: This is a bullshit Firefox hack */ } .gh-nav-menu-details-blog { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 1.5rem; line-height: 1.3em; font-weight: 700; } .gh-nav-menu-details-user { overflow: hidden; color: var(--midgrey); text-overflow: ellipsis; white-space: nowrap; font-size: 1.2rem; line-height: 1.2em; } .gh-nav-body { display: flex; flex-direction: column; justify-content: space-between; flex-grow: 1; overflow-y: auto; } /* Global search /* ---------------------------------------------------------- */ .gh-nav-btn-search { padding: 5px 4px 2px; width: 30px; height: 30px; border-radius: 999px; margin: 3px -6px 0 0; } .gh-nav-btn-search:hover { background: var(--active-menu-bg-color); } .gh-nav-search-modal { position: relative; margin: -32px; } .gh-nav-search { position: relative; min-width: 300px; } .gh-nav-search-input .ember-power-select-trigger { outline: 0; background: var(--white); border: none; border-radius: 5px; border: none; padding: 16px; } .gh-nav-search-input .ember-power-select-trigger input { height: 25px; margin-left: 26px !important; font-size: 1.5rem !important; } .gh-nav-search-icon { position: absolute; top: 23px; left: 15px; bottom: 0; z-index: 1; width: 16px !important; height: 16px !important; line-height: 13px; } .gh-nav-search-icon path { stroke: none !important; fill: var(--midlightgrey); } .gh-search-tips { position: absolute; top: calc(100% + 5px); padding: 0 8px; border-radius: 5px; right: 0; font-size: 1.2rem; font-weight: 600; letter-spacing: 0.2px; text-align: right; background: none; color: rgba(255, 255, 255, 0.9); text-shadow: 0px 1px 4px rgba(0,0,0,0.3); } @media (max-width: 800px) { .gh-nav-search { min-width: 220px; } } /* Navigation /* ---------------------------------------------------------- */ .gh-nav-list { margin: 32px 0 0; padding: 0; list-style: none; font-size: 1.4rem; line-height: 1.6em; } .gh-nav-list li { margin: 0; padding: 0; } .gh-nav-list .gh-nav-list-h { overflow: hidden; padding: 10px 20px; color: color-mod(var(--darkgrey)); text-overflow: ellipsis; text-transform: uppercase; white-space: nowrap; letter-spacing: 0.4px; font-size: 1.1rem; line-height: 1.1em; font-weight: 500; } .gh-nav-list a { display: flex; align-items: center; padding: 6px 32px; color: color-mod(var(--middarkgrey) l(-10%)); transition: none; margin: 2px 5px; font-weight: 400; border-radius: 5px; } .gh-nav-list .active { position: relative; color: var(--active-menu-color); background: var(--active-menu-bg-color); font-weight: 700; } .gh-nav-list a:not(.active):hover { color: var(--darkgrey); background: var(--menu-hover-bg-color); opacity: 1; } /* Icons */ .gh-nav-list svg { margin-right: 8px; width: 16px; height: 16px; fill: var(--midgrey); line-height: 1; transition: none; } .gh-nav-list a:not(.active):hover svg { fill: var(--darkgrey); } .gh-nav-list .active svg { fill: var(--active-menu-color); } .gh-nav-list a svg g { stroke: var(--midgrey); } .gh-nav-list a:not(.active):hover svg g { stroke: var(--darkgrey); } .gh-nav-list .active svg g { stroke: var(--active-menu-color); } .gh-nav-button-expand.expanded { padding-left: 9px; } .gh-nav-button-expand svg { width: 9px; height: 9px; margin-bottom: 1px; } .gh-nav-button-expand svg path { stroke-width: 2.0px; stroke: var(--midgrey); } .gh-nav-button-expand:hover svg path { stroke: color-mod(var(--darkgrey) l(-5%)); } .gh-nav-list .gh-secondary-action { position: absolute; z-index: 999; padding: 6px; margin: 0; right: 8px; top: -6px; opacity: 0; transition: opacity ease 0.2s; } .gh-nav-list li:hover .gh-secondary-action { opacity: 1; } .gh-nav-list .gh-secondary-action span { width: 30px; height: 30px; border-radius: 100%; display: flex; align-items: center; justify-content: center; } .gh-nav-list .gh-secondary-action span svg { margin-right: 0; width: 22px; height: 22px; } .gh-nav-list .gh-secondary-action span svg path { fill: var(--middarkgrey); } .gh-nav-list .gh-secondary-action:hover span { background: var(--active-menu-bg-color); } .gh-nav-list .gh-secondary-action:hover, .gh-nav-list a.gh-secondary-action:hover, .gh-nav-list .active + .gh-secondary-action:hover span { background: none; } .gh-nav-list .gh-secondary-action:hover span svg path { fill: var(--darkgrey); } .gh-nav-list .gh-nav-new-post span svg { width: 18px; height: 18px; } .gh-nav-list .gh-nav-new-post span svg path { stroke: var(--darkgrey); } .gh-nav-main { margin: 22px 0; } .gh-nav-labs { margin-bottom: 32px; padding: 0; } .gh-nav-bottom { margin: 0 5px; } .gh-nav-bottom .ember-basic-dropdown-trigger:hover { background: var(--menu-hover-bg-color); border-radius: 5px; } .gh-nav-pro .gh-btn-green { margin: 7px 10px 7px 20px !important; width: calc(100% - 40px) !important; } .gh-nav-view-list { padding: 0; margin: 0; list-style: none; font-size: 1.4rem; line-height: 1.6em; } .gh-nav-view-list a { padding-left: 58px; padding-right: 12px; } .gh-nav-viewname { display: inline-block; max-width: 160px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .gh-nav-view-list .circle { display: block; border-radius: 999px; border: 3px solid var(--midgrey); width: 12px; height: 12px; margin: 0 10px 0 2px; } .gh-nav-view-list .svg-midgrey .circle { border-color: var(--midgrey); background: var(--midgrey); } .gh-nav-view-list .svg-blue .circle { border-color: var(--blue); background: var(--blue); } .gh-nav-view-list .svg-green .circle { border-color: var(--green); background: var(--green); } .gh-nav-view-list .svg-red .circle { border-color: var(--red); background: var(--red); } .gh-nav-view-list .svg-teal .circle { border-color: #4dcddc; background: #4dcddc; } .gh-nav-view-list .svg-purple .circle { border-color: var(--purple); background: var(--purple); } .gh-nav-view-list .svg-yellow .circle { border-color: var(--yellow); background: var(--yellow); } .gh-nav-view-list .svg-orange .circle { border-color: #fe8b05; background: #fe8b05; } .gh-nav-view-list .svg-pink .circle { border-color: var(--pink); background: var(--pink); } /* Mobile Nav Menu (Slides out) /* ---------------------------------------------------------- */ .gh-mobilemenu-button { display: none; } @media (max-width: 800px) { .view-header { padding-left: 0 !important; } .gh-mobilemenu-button { flex-shrink: 0; display: flex; align-items: center; margin: 0; padding: 24px; font-size: 18px; line-height: 18px; } .gh-mobilemenu-button .icon-gh { margin: 0; width: 20px; height: 18px; } /* Hide the nav */ .gh-nav { position: absolute; top: 0; left: 0; width: 205px; height: 100%; background: var(--white); transition: transform 0.4s cubic-bezier(0.1, 0.7, 0.1, 1); transform: translate3d(-205px, 0px, 0px); } .mobile-menu-expanded .gh-nav { transform: translate3d(0,0,0); } .gh-nav-list .active { background: color-mod(var(--lightgrey) l(+2%) s(-10%)); } } @media (max-width: 500px) { .gh-mobilemenu-button { padding: 24px 15px 24px 16px; } .gh-nav { width: 80vw; transform: translate3d(-80vw, 0px, 0px); } .mobile-menu-expanded .gh-nav { transform: translate3d(0,0,0); } .mobile-menu-expanded .content-cover { width: 20vw; cursor: pointer; transform: translate3d(80vw, 0, 0); } .gh-nav-list { font-size: 1.5rem; } .gh-nav-list-h { font-size: 1.2rem; } .gh-nav-list svg { margin-right: 10px; width: 17px; height: 17px; text-align: center; font-size: 17px; } .gh-nav-button-expand svg { width: 9px; height: 9px; margin-bottom: 1px; } } /* Mobile Nav Bar (Sits at bottom of screen) /* ---------------------------------------------------------- */ .gh-mobile-nav-bar { display: none; } @media (max-width: 800px) { /* Make space for the mobile nav bar */ .gh-viewport { padding-bottom: 55px; } @supports (padding-bottom: env(safe-area-inset-bottom)) { .gh-viewport { padding-bottom: calc(55px + env(safe-area-inset-bottom, 0px)); } } .gh-mobile-nav-bar { display: flex; align-items: center; justify-content: space-around; position: fixed; bottom: 0; left: 0; right: 0; background: #fff; border-top: var(--lightgrey) 1px solid; } @supports (padding-bottom: env(safe-area-inset-bottom)) { .gh-mobile-nav-bar { padding-bottom: env(safe-area-inset-bottom, 0px); } } .gh-mobile-nav-bar a, .gh-mobile-nav-bar-more { height: 55px; padding: 10px 10px 5px; text-align: center; cursor: pointer; color: var(--darkgrey); display: flex; flex-direction: column; align-items: center; justify-content: space-around; font-size: 1.2rem; flex-basis: 25%; margin: 4px; border-radius: 5px; } .gh-mobile-nav-bar a.active { background: var(--blue); color: #fff; } .gh-mobile-nav-bar a.active svg { fill: #fff; } .gh-mobile-nav-bar a.active.gh-nav-main-users g, .gh-mobile-nav-bar a.active.gh-nav-main-users path { fill: transparent; stroke: white; } .gh-mobile-nav-bar svg, .gh-mobile-nav-bar svg g { width: 15px; fill: var(--darkgrey); } .gh-mobile-nav-bar svg g path { stroke: var(--darkgrey); } /* non-authed pages shouldn't have the mobile bar */ .unauthenticated-route .gh-viewport { padding-bottom: 0; } .unauthenticated-route .gh-mobile-nav-bar { display: none; } } /* Container for App View /* ---------------------------------------------------------- */ .gh-view { flex-grow: 1; display: flex; flex-direction: column; } .gh-canvas { flex-grow: 1; padding: 0 24px 48px; margin: 0 auto; max-width: 1220px; } .gh-canvas-header { position: relative; flex-shrink: 0; display: flex; justify-content: space-between; align-items: center; margin: 0; min-height: 84px; position: sticky; top: 0; background: var(--main-bg-color); z-index: 700; margin: 0 -24px 3px; padding: 0 24px; border-bottom: 1px solid; border-color: color-mod(color-mod(var(--main-bg-color) l(-4%)) a(0%)); transition-duration: 300ms; transition-property: border-color; } .gh-canvas-header--sticky:before { position: absolute; content: ""; background: color-mod(var(--lightgrey) l(-2%)); height: 1px; bottom: -2px; left: 24px; right: 24px; } .gh-main-white .gh-canvas-header { background: var(--white); } .gh-canvas-title { display: flex; align-items: center; overflow: hidden; margin: -3px 0 0 0; padding: 0; text-overflow: ellipsis; white-space: nowrap; font-size: 2.8rem; line-height: 1.2em; font-weight: 600; letter-spacing: 0.2px; /* match button height to avoid jump on navigation between screens*/ min-height: 35px; } @media (max-width: 500px) { .gh-canvas-title svg { margin: 0 5px; } } .gh-canvas-title a { color: var(--darkgrey); } .gh-canvas-title span { display: inline-block; height: 100%; vertical-align: baseline; } .gh-canvas-title svg { width: 0.6em; height: 0.6em; margin: 0 10px; } .gh-btn-edit-view { opacity: 0; transition: all 0.3s ease-in-out; } .gh-canvas-title:hover .gh-btn-edit-view { opacity: 1.0; } /* What's new badges /* ---------------------------------------------------- */ .gh-whats-new-badge-account { top: -4px; right: -4px; border: 2px solid #fff; width: 14px; height: 14px; } /* Used on tags, settings, labs, design etc. /* TODO: remove and re-use gh-canvas... /* ---------------------------------------------------- */ .view-header { flex-shrink: 0; display: flex; justify-content: space-between; align-items: center; padding: 24px; margin: 2px 0 0; } .view-title { display: flex; align-items: center; overflow: hidden; margin: -3px 0 0 1px; padding: 0; text-overflow: ellipsis; white-space: nowrap; font-size: 2.8rem; line-height: 1.2em; font-weight: 600; letter-spacing: 0.2px; min-height: 35px; } .view-title a { color: inherit; } .view-title a:hover { color: var(--blue); } .view-title svg { margin: 0 10px; height: 14px; } .view-title svg path { fill: #818181; } .view-actions { flex-shrink: 0; display: flex; align-items: center; } .view-container, .view-content { position: relative; flex-grow: 1; } .view-content { padding: 20px; } .view-content p, .view-content p * { user-select: text; } .view-actions input[type="text"] { padding: 8px 8px 9px; height: 35px; font-size: 1.3rem; } .view-actions .gh-input-search-icon { position: absolute; top: 9px; left: 9px; width: 16px; height: 16px; fill: color-mod(var(--midlightgrey) l(+5%)); } .gh-actions-cog { margin-right: 10px } .gh-actions-cog svg { height: 13px; width: 13px; fill: var(--midgrey); margin-right: 0; } .gh-actions-cog svg path { stroke: initial; } .gh-actions-menu { top: calc(100% + 6px); right: 10px; left: auto; } .gh-actions-menu.fade-out { animation-duration: 0.01s; } @media (max-width: 400px) { .view-header { padding: 0 7px; height: 50px; } .view-title { font-size: 1.8rem; } .view-content { padding: 15px; } } @media (max-width: 800px) { .gh-canvas-header { left: 0; } .gh-canvas { padding: 0 4vw 4vw; } }