react-saasify-chrisvxd
Version:
React components for Saasify web clients.
904 lines (758 loc) • 18.2 kB
CSS
@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 ;
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) ;
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 ;
}
@media (min-width: 48em) {
.theme-waves .home-page .demo-section {
background: transparent ;
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) ;
}
}
.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)) ;
}
.theme-waves .features-section .feature {
margin-left: auto;
margin-right: auto;
max-width: 220px;
}
.theme-waves .features-section .feature .illustration {
max-height: 120px ;
width: 220px;
}
.theme-waves .features-section .feature h3 {
font-weight: 600 ;
}
/*
* 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 ;
}
.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) ;
font-size: 18px;
font-weight: 500;
margin-right: var(--space-xl);
}
.theme-waves header.container .link:hover {
color: var(--color-primary) ;
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) ;
}
.theme-waves header.attached {
background: white ;
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.08);
}
@media (min-width: 48em) {
.theme-waves header.attached .link {
color: var(--color-fg) ;
}
}
.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) ;
color: var(--color-nav-secondary-cta) ;
}
.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) ;
}
/*
* Footer
* ----------------------------
*/
.theme-waves footer {
background-color: #f9f9fb ;
border-top: 1px solid #efefef;
}
.theme-waves footer .detail,
.theme-waves footer .header {
color: var(--color-fg) ;
opacity: 0.9;
}
.theme-waves footer .link {
color: var(--color-fg) ;
opacity: 0.9;
}
.theme-waves footer .link:hover {
color: var(--color-primary) ;
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 ;
border-radius: var(--border-radius);
font-size: 16px ;
font-weight: 500;
height: auto;
letter-spacing: normal ;
text-transform: none ;
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) ;
color: white ;
}
.theme-waves .cta-button:global(.secondary),
.theme-waves :global(.ant-btn-secondary) {
background: transparent ;
color: var(--color-primary) ;
}
.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) ;
color: white ;
}
.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 ;
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 ;
color: white ;
height: auto ;
font-size: 14px;
padding: var(--space-m) ;
padding-left: var(--space-l) ;
padding-right: var(--space-l) ;
}
.theme-waves .live-service-demo .info,
.theme-waves .live-service-demo .copy {
background: white ;
border: none ;
color: var(--color-fg) ;
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 ;
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) ;
}
@media (min-width: 48em) {
.theme-waves .pricing-section::before {
height: calc(50% + 250px) ;
}
}
.theme-waves .pricing-section::after {
top: calc(50% - 225px) ;
}
@media (min-width: 48em) {
.theme-waves .pricing-section::after {
bottom: 150px ;
top: auto ;
}
}
.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 ;
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;
}