UNPKG

react-saasify-chrisvxd

Version:

React components for Saasify web clients.

904 lines (758 loc) 18.2 kB
@import url('https://fonts.googleapis.com/css?family=Lato:400&display=swap'); :root { /* TODO add postcss to resolve vars for IE11 */ --filter-tint: saturate(102%) hue-rotate(10deg); --color-fg: #3a3a3a; --max-width: 1108px; --max-width-half: 554px; --space-xs: 4px; --space-s: 8px; --space-m: 16px; --space-l: 24px; --space-xl: 32px; --space-xxl: 48px; --space-xxxl: 64px; --side-gutter-half: var(--space-m); --side-gutter: var(--space-xl); --font-family: 'Avenir Next', 'Lato', 'Helvetica Neue', sans-serif; --transition-all: all 250ms ease; --transition-all-fast: all 125ms ease; --line-height-m: 1.375; --line-height-l: 1.42; } /* .theme-waves ::selection { background: var(--color-primary); } */ .theme-waves { color: #fff; font-family: var(--font-family); font-size: 16px; overflow-x: hidden; } .theme-waves h1, .theme-waves h2, .theme-waves h3, .theme-waves h4, .theme-waves h5, .theme-waves h6 { color: var(--color-fg); font-family: var(--font-family); font-weight: 400; } .theme-waves p { color: var(--color-fg); } .theme-waves b, .theme-waves strong { font-weight: 700; } .theme-waves .paper { border-radius: 10px; box-shadow: 0 7px 18px 0 rgba(210, 210, 210, 0.5); margin: 0; padding: var(--space-xl); } /* * Section * ---------------------------- */ .theme-waves .section { margin-bottom: var(--space-xxl); margin-top: var(--space-xxl); padding-left: var(--side-gutter); padding-right: var(--side-gutter); } .theme-waves .section .title { font-size: 48px; position: relative; } .theme-waves .section:first-of-type .title { color: var(--hero-color); } .theme-waves .section .subtitle { color: var(--color-fg); font-size: 24px; opacity: 0.9; } .theme-waves .section:first-of-type .subtitle { color: var(--hero-color); } .theme-waves .section .content { flex: initial; max-width: var(--max-width); padding: 0 !important; z-index: 1; } .theme-waves .section-divider { display: none; } /* * Home page * ---------------------------- */ .theme-waves .home-page .hero-section { height: 60vh; margin-top: var(--space-xxl); } @media (min-width: 48em) { .theme-waves .home-page .hero-section, .home-page .demo-section { height: calc(100vh - 48px); margin-top: 0; min-height: 500px; width: 50%; z-index: 1; } .theme-waves .home-page .hero-section .content, .theme-waves .home-page .demo-section .content { max-width: var(--max-width-half); } } /* * Home page, Hero section * ---------------------------- */ @media (min-width: 48em) { .theme-waves .home-page .hero-section { padding-right: 0; padding-bottom: var(--space-xxxl); } } .theme-waves .home-page .hero-section .content { align-items: center; justify-content: center; flex: 1 1; } @media (min-width: 48em) { .theme-waves .home-page .hero-section .content { align-items: flex-start; margin-left: auto; padding-right: var(--space-xl) !important; z-index: 1; } } .theme-waves .home-page .hero-section .title { line-height: var(--line-height-m); margin: 0; margin-bottom: var(--space-m); max-width: 460px; font-weight: 400; } @media (min-width: 48em) { .theme-waves .home-page .hero-section .title { text-align: left; } } .theme-waves .home-page .hero-section .subtitle { line-height: var(--line-height-l); margin: 0; margin-bottom: var(--space-l); max-width: 460px; } @media (min-width: 48em) { .theme-waves .home-page .hero-section .subtitle { text-align: left; } } /* * Home page, Demo section * ---------------------------- */ .theme-waves .home-page .demo-section { background: transparent !important; } @media (min-width: 48em) { .theme-waves .home-page .demo-section { background: transparent !important; padding-left: 0; position: absolute; right: 0; } } .theme-waves .home-page .demo-section .content { font-weight: 400; justify-content: center; margin-right: auto; } @media (min-width: 48em) { .theme-waves .home-page .demo-section .content { padding-left: var(--side-gutter-half) !important; } } .theme-waves .home-page .demo-section .title, .theme-waves .home-page .demo-section .desc { display: none; } /* * Home page, Features section * ---------------------------- */ .theme-waves .home-page .features-section .title, .theme-waves .home-page .features-section .desc { display: none; } .theme-waves .features-section .features { grid-template-columns: repeat(auto-fill, minmax(256px, 1fr)) !important; } .theme-waves .features-section .feature { margin-left: auto; margin-right: auto; max-width: 220px; } .theme-waves .features-section .feature .illustration { max-height: 120px !important; width: 220px; } .theme-waves .features-section .feature h3 { font-weight: 600 !important; } /* * Home page, CTA section * ---------------------------- */ .theme-waves .home-page .section:last-of-type { display: none; } /* * Pricing page * ---------------------------- */ .theme-waves .pricing-page .pricing-section { height: auto; min-height: 500px; z-index: 1; } /* * Checkout page * ---------------------------- */ .theme-waves .checkout-page { background: #f7f7f7; padding: 0; } .theme-waves .checkout-page :global(.box-gallery) { display: none; } .theme-waves .checkout-page .title { font-size: 24px; font-weight: 600; margin-bottom: var(--space-m); text-align: left; } .theme-waves .checkout-page > .content { display: flex; align-items: center; padding: var(--space-m); flex-direction: column; flex-grow: 1; width: 100%; } @media (min-width: 48em) { .theme-waves .checkout-page > .content { align-items: flex-start; justify-content: center; flex-direction: row; padding-top: var(--space-xxl); } } .theme-waves .checkout-page .content .form :global(.ant-form-item) { text-align: left; } .theme-waves .checkout-page .plan { margin-bottom: var(--space-l); margin-left: 0; margin-right: 0; } @media (min-width: 48em) { .theme-waves .checkout-page .plan { margin-bottom: 0; margin-right: var(--space-l); } } .theme-waves .checkout-page .form button { width: 100%; } /* * Login page * ---------------------------- */ .theme-waves .login-page, .theme-waves .signup-page { background: #f7f7f7; } .theme-waves .login-page :global(.box-gallery), .theme-waves .signup-page :global(.box-gallery) { display: none; } .theme-waves .login-page .title, .theme-waves .signup-page .title { font-weight: 500; } .theme-waves .login-page .content, .theme-waves .signup-page .content { background: none; box-shadow: none; display: flex; align-items: center; flex-grow: 1; text-align: center; } .theme-waves .login-page .content .form, .theme-waves .signup-page .content .form { background: white; border-radius: var(--space-s); box-shadow: 0 7px 18px 0 rgba(210, 210, 210, 0.5); margin: 0; padding: var(--space-l); width: 100%; } .theme-waves .login-page .content .form > button.submit { margin-bottom: var(--space-m); } .theme-waves .login-page .content .form :global(.ant-form-item), .theme-waves .signup-page .content .form :global(.ant-form-item) { text-align: left; } /* * Dashboard * ---------------------------- */ .theme-waves .dashboard-page, .theme-waves .dashboard-page .section { background: #f7f7f7 !important; } .theme-waves .dashboard-page .section:first-of-type::before { display: none; } .theme-waves .dashboard-page .dashboard-section .title { color: var(--color-fg); font-weight: 600; font-size: 48px; } .theme-waves .dashboard-page .section:first-of-type::after { display: none; } .theme-waves .dashboard-page .onboarding-section { margin-top: 0; } .theme-waves .dashboard-page .section:not(.dashboard-section) .title { font-weight: 600; font-size: 22px; } /* * NavHeader * ---------------------------- */ .theme-waves header.container { border-bottom: var(--nav-border-width) solid #e1e1e1; padding: 0; padding-bottom: var(--space-m); padding-left: var(--side-gutter); padding-right: var(--side-gutter); padding-top: var(--space-m); position: sticky; transition: var(--transition-all-fast); } .theme-waves header.container .links { flex-grow: 1; } .theme-waves header.container .link { color: var(--hero-color) !important; font-size: 18px; font-weight: 500; margin-right: var(--space-xl); } .theme-waves header.container .link:hover { color: var(--color-primary) !important; filter: var(--filter-tint); } @media (min-width: 48em) { .theme-waves header.container .links .link { margin-left: var(--space-xl); margin-right: var(--space-xl); } } .theme-waves header.container .links .link:first-of-type { margin-left: 0; } .theme-waves header.container .links .link:nth-of-type(3) { display: none; } .theme-waves header.container .links .link:nth-of-type(1) { order: 2; opacity: 0.9; } .theme-waves header.container .links .link:nth-of-type(2) { margin-left: auto; margin-right: var(--space-xxxl); order: 1; opacity: 0.9; } .theme-waves header.container .actions { justify-content: initial; } @media (min-width: 48em) { .theme-waves header.container .actions { justify-content: space-around; margin-top: 0; } } .theme-waves header.container .actions .link:first-of-type { margin-left: 0; margin-right: var(--space-s); } @media (min-width: 48em) { .theme-waves header.container .actions .link:first-of-type { margin-left: var(--space-xl); margin-right: 0; } } .theme-waves header.container .actions .link:last-of-type { margin-left: var(--space-s); margin-right: 0; } @media (min-width: 48em) { .theme-waves header.container .actions .link:last-of-type { margin-left: var(--space-m); } } .theme-waves header.container .actions .link, .theme-waves header.container .actions .link > button { width: 100%; } @media (min-width: 48em) { .theme-waves header.container .actions .link { margin-left: var(--space-m); width: auto; } } .theme-waves header .content { max-width: var(--max-width) !important; } .theme-waves header.attached { background: white !important; box-shadow: 0 4px 8px rgba(0, 0, 0, 0.08); } @media (min-width: 48em) { .theme-waves header.attached .link { color: var(--color-fg) !important; } } .theme-waves header .logo { max-height: 48px; } .theme-waves header .logo-text { font-weight: 600; } .theme-waves header:not(.attached):not(.expanded) .cta-button:global(.secondary):not(:hover) { border-color: var(--color-nav-secondary-cta) !important; color: var(--color-nav-secondary-cta) !important; } .theme-waves header.attached .logo-text:not(:hover), .theme-waves header.attached .links .link:not(:hover), .theme-waves header.expanded .logo-text:not(:hover), .theme-waves header.expanded .links .link:not(:hover) { color: var(--color-fg) !important; } /* * Footer * ---------------------------- */ .theme-waves footer { background-color: #f9f9fb !important; border-top: 1px solid #efefef; } .theme-waves footer .detail, .theme-waves footer .header { color: var(--color-fg) !important; opacity: 0.9; } .theme-waves footer .link { color: var(--color-fg) !important; opacity: 0.9; } .theme-waves footer .link:hover { color: var(--color-primary) !important; filter: var(--filter-tint); opacity: 1; } /* * CTAs * ---------------------------- */ .theme-waves a { color: var(--color-primary); transition: var(--transition-all); } .theme-waves a:hover { filter: var(--filter-tint); transition: var(--transition-all); } /* TODO: cta-button ghost should have dark text */ .theme-waves .cta-button, .theme-waves .cta-button.inline, .theme-waves :global(.ant-btn) { border: var(--color-primary) solid 1px !important; border-radius: var(--border-radius); font-size: 16px !important; font-weight: 500; height: auto; letter-spacing: normal !important; text-transform: none !important; text-shadow: none; padding-bottom: var(--space-s); padding-top: var(--space-s); padding-left: var(--space-xl); padding-right: var(--space-xl); transition: var(--transition-all); } .theme-waves .cta-button:global(.primary), .theme-waves :global(.ant-btn) { background: var(--color-primary) !important; color: white !important; } .theme-waves .cta-button:global(.secondary), .theme-waves :global(.ant-btn-secondary) { background: transparent !important; color: var(--color-primary) !important; } .theme-waves .cta-button:hover, .theme-waves :global(.ant-btn):hover { box-shadow: 0 7px 14px rgba(50, 50, 93, 0.11), 0 3px 6px rgba(0, 0, 0, 0.08); filter: var(--filter-tint); } .theme-waves .cta-button:global(.secondary):hover, .theme-waves :global(.ant-btn-secondary):hover { background: var(--color-primary) !important; color: white !important; } .theme-waves :global(.ant-btn-icon-only) { width: 32px; height: 32px; padding: 0; } /* * Code Block * ---------------------------- */ .theme-waves .live-service-demo { background: var(--code-block-background); border-radius: 8px; box-shadow: none !important; filter: drop-shadow(0px 3px 6px var(--code-block-shadow-color)); overflow: hidden; } @media (min-width: 48em) { .theme-waves .live-service-demo { margin-top: var(--space-xxxl); } } .theme-waves .live-service-demo .tabs:before { align-self: center; color: #ffffff90; content: 'Live Demo'; font-size: 16px; font-family: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, Courier, monospace; white-space: nowrap; } .theme-waves .live-service-demo .tabs { background: #313b5250; color: #ffffff80; font-size: 14px; padding-bottom: var(--space-m); padding-top: var(--space-m); padding-left: var(--space-l); padding-right: var(--space-l); overflow-x: auto; } .theme-waves .live-service-demo .tabs .tab:first-of-type { margin-left: auto; padding-left: var(--space-xl); } .theme-waves .live-service-demo .tabs .tab:hover { background: transparent; color: #ffffff; } .theme-waves .live-service-demo .tabs .selected-tab { background: transparent; color: #ffffff; font-weight: 600; } .theme-waves .live-service-demo .tab-content { max-height: 50vh; padding-bottom: var(--space-l); position: static; overflow-y: auto; } .theme-waves .code-block { background: transparent !important; color: white !important; height: auto !important; font-size: 14px; padding: var(--space-m) !important; padding-left: var(--space-l) !important; padding-right: var(--space-l) !important; } .theme-waves .live-service-demo .info, .theme-waves .live-service-demo .copy { background: white !important; border: none !important; color: var(--color-fg) !important; opacity: 0.6; } .theme-waves .live-service-demo .copy:hover { opacity: 1; } /* * BG * ---------------------------- */ .theme-waves .section:first-of-type::before { background-image: var(--background-image); background-size: cover; background-position: top; content: ''; position: absolute; height: calc(100% + 250px); min-height: 100vh; left: 0; top: -188px; width: 100vw; } @media (min-width: 48em) { .theme-waves .section:first-of-type::before { height: calc(100% + 100px); min-height: 500px; top: -118px; } } .theme-waves .section:first-of-type::after { background-image: var(--background-image-wave); background-position: center; background-size: cover; content: ''; height: 260px !important; left: 0; position: absolute; top: calc(100% - 113px); width: 100vw; } @media (min-width: 48em) { .theme-waves .section:first-of-type::after { bottom: -32px; top: auto; } } /* * Pricing plans * ---------------------------- */ .theme-waves .pricing-section { margin-top: 0; } .theme-waves .pricing-section .title { font-weight: 600; } .theme-waves .pricing-section::before { height: calc(50% + 0px) !important; } @media (min-width: 48em) { .theme-waves .pricing-section::before { height: calc(50% + 250px) !important; } } .theme-waves .pricing-section::after { top: calc(50% - 225px) !important; } @media (min-width: 48em) { .theme-waves .pricing-section::after { bottom: 150px !important; top: auto !important; } } .theme-waves .pricing-section .title { font-size: 40px; line-height: var(--line-height-m); margin-top: var(--space-xxxl); margin-bottom: var(--space-s); } .theme-waves .pricing-section .subtitle { font-size: 28px; line-height: var(--line-height-m); margin-bottom: var(--space-xxxl); } .theme-waves .plans { justify-content: center; margin: 0; margin-top: var(--space-s); } @media (min-width: 48em) { .theme-waves .plans { flex-wrap: nowrap; } } .theme-waves .plan { margin-bottom: var(--space-xxl); max-width: 400px; width: 100%; } @media (min-width: 48em) { .theme-waves .plan { margin: var(--space-l); margin-top: 0; } } .theme-waves .plan h3 { font-size: 28px; letter-spacing: initial; line-height: var(--line-height-m); font-weight: 600 !important; margin-bottom: var(--space-l); text-shadow: none; } .theme-waves .plan .features { margin-bottom: var(--space-l); } .theme-waves .pricing-section .plan .features { margin-bottom: var(--space-l); } /* Label */ .theme-waves .pricing-section .plan .features .emphasis, .theme-waves .pricing-section .plan .features .column { font-weight: 400; opacity: 0.6; } .theme-waves .plan .cta-button { margin-top: var(--space-m); width: 100%; } .theme-waves .plan:first-of-type .cta-button { content: 'test'; } .theme-waves .plan > div:nth-last-of-type(2) { display: none; } .theme-waves .plan .price { align-items: baseline; color: #9e9e9e; display: flex; justify-content: center; font-weight: 500; font-size: 18px; margin-bottom: 0; } .theme-waves .plan .price .dollas { color: var(--color-fg); font-size: 28px; font-weight: 600; margin-right: var(--space-s); } .theme-waves .enterprise-section .content { max-width: 600px; text-align: center; }