overleaf/services/web/frontend/stylesheets/app/cms-page.less
Jessica Lawshe 8d63d56a6f Merge pull request #19992 from overleaf/jel-cms-quote
[web] Add new quote option to CMS

GitOrigin-RevId: 5c66620eb755fc9af9c8ba22d64ff969c5c140ca
2024-08-22 08:05:30 +00:00

667 lines
12 KiB
Text

/*
v2
CMS Generated Pages,
including About and Blog
*/
.cms-page {
&.website-redesign {
h1 {
font-size: 2rem; // 32px
line-height: 1.333;
}
h2 {
font-size: 1.5rem; // 24px
}
.sales-contact-form-left-column {
.sales-contact-form-heading-title {
font-size: 2.25rem;
font-family: 'Noto Sans';
font-style: normal;
font-weight: 600;
line-height: 1.333;
padding-top: 8px;
padding-right: 50px;
}
@media (min-width: @screen-xs) {
.names-container {
display: flex;
gap: 21px;
}
}
.checkbox-label {
font-size: 16px;
font-weight: 400;
}
}
/* Buttons */
// correct color property set on <a> above:
.reset-btns;
.alert {
.alert;
}
.alert-info {
.btn-info {
.btn-alert-info;
}
}
.p-no-text-nodes:has(.btn) {
margin-top: var(--spacing-09);
@media (max-width: @screen-xs-max) {
.btn {
width: 100%;
margin-left: 0;
margin-top: var(--spacing-05);
}
.btn:first-child {
margin-top: 0;
}
}
}
.btn + .btn {
margin-left: var(--spacing-06);
}
blockquote.quote-picture-bottom {
padding: (@line-height-computed / 2) @line-height-computed;
.quote-picture-and-person {
font-size: 18px;
}
.quote-by-position {
font-weight: 400;
}
}
.optional-text {
font-size: 14px;
}
}
.section-row {
margin: 0 auto;
/* match .col-sm-12 */
/* @grid-gutter-width is used for margins */
max-width: (@screen-sm) - @grid-gutter-width!important;
@media (min-width: @screen-md-min) {
max-width: (@screen-md) - @grid-gutter-width!important;
}
@media (min-width: @screen-lg-min) {
max-width: (@screen-lg) - @grid-gutter-width!important;
}
}
padding-bottom: 0;
img {
height: auto;
max-width: 100%;
}
.btn-description {
margin-right: @margin-sm;
}
/*
Tabs
*/
.tab-content {
padding-left: 0;
padding-right: 0;
width: 100%;
}
/*
When on preview mode
*/
.cms-preview {
background-color: @blue;
color: white;
font-weight: bold;
height: @navbar-padding-vertical;
left: 0;
line-height: @navbar-padding-vertical;
opacity: 0.8;
position: fixed;
text-align: center;
top: 0;
width: 100%;
z-index: 1;
&:after {
content: 'Preview';
width: 100%;
top: 0;
left: 0;
}
}
.tab-pane {
.row:first-child {
margin-top: 0;
}
}
/*
quotes
*/
blockquote:not(.quote-large-text-centered):not(.quote-left-green-border) {
margin: 0;
position: relative;
/*
type.less sets <p> inline, so that quotation mark is inline
but sometimes we have multiple <p>,
so hide quotation mark from type.less and add one here
*/
&:before {
/* hide quotation from type.less */
display: none;
}
p {
display: block;
}
p:first-child {
/* below copied from type.less */
&:before {
content: open-quote;
font-size: @blockquote-font-size * 3;
color: @blockquote-border-color;
margin-right: 0.25em;
vertical-align: -0.4em;
line-height: 0.1em;
}
}
}
.quote-full-width {
img {
margin-right: @margin-sm;
margin-bottom: @margin-sm;
}
}
.quote-picture-bottom {
border: none;
color: @content-primary;
.h1 {
margin: 0 0 48px 0;
}
p:first-child {
&:before {
color: inherit;
font-size: inherit;
margin-right: 0;
vertical-align: 0;
line-height: inherit;
position: absolute;
top: (@line-height-computed / 2); // match quote padding
left: 3px;
}
&:after {
content: close-quote;
}
}
img {
height: 64px;
width: 64px;
margin-right: 16px;
}
.quote-by-position {
color: @content-secondary;
}
.quote-picture-and-person {
display: flex;
}
}
/*
Tables
*/
.table-styled {
overflow: hidden;
overflow-x: auto;
table {
background: white;
max-width: none;
th,
td {
border: 1px solid @gray-lighter;
padding: @padding-sm;
text-align: center;
word-break: normal;
}
}
}
.table-styled,
.features-table {
.fa-check-square,
.fa-check {
color: @ol-green;
}
}
.features-table {
max-width: none;
th,
td {
border: 1px solid @gray-lighter;
hyphens: auto;
padding: @padding-sm;
text-align: center;
}
th,
td {
width: 20%;
}
.btn {
max-width: 100%;
white-space: pre-wrap;
word-wrap: break-word;
}
&.left-align-first-col {
td,
th {
text-align: left;
}
td + td,
th + th {
text-align: center;
}
}
.hidden-row-above-xs {
display: none;
}
@media screen and (max-width: @screen-xs-max) {
tbody,
thead {
display: block;
}
tr {
display: flex;
flex-flow: row wrap;
justify-content: space-around;
}
td,
th {
display: block;
width: 25%;
}
tr:first-child {
th {
width: 50%;
}
th:first-child {
width: 100%;
}
}
td:first-child {
text-align: center;
width: 100%;
}
.hidden-row-xs {
display: none;
}
.hidden-row-above-xs {
display: flex;
}
.table-header {
text-align: center;
}
}
}
/*
universities page
*/
#universities-container {
padding: @padding-md;
width: 100%;
.row {
border-bottom: 1px solid @gray-lightest;
div {
padding: @padding-md;
vertical-align: middle;
}
}
.row:first-child {
// parent container contains padding
div {
padding-top: 0;
}
}
.row:last-child {
border: 0;
// parent container contains padding
div {
border: 0;
padding-bottom: 0;
}
}
p {
margin: 0 auto;
width: 100%;
}
// Logos
.uni-logo {
margin: 0 auto;
max-height: 55px;
min-width: 55px;
}
.university-claim-btn {
text-align: center;
}
@media only screen and (min-width: @screen-xs-min) {
display: table;
table-layout: fixed;
.row {
display: table-row;
div {
border-bottom: 1px solid @gray-lightest;
display: table-cell;
float: none;
}
}
}
}
/*
videos
*/
video {
height: auto;
max-width: 100%;
}
}
.icon-with-content {
display: flex;
h2,
h3,
h4 {
margin-top: 15px;
}
.icon-container {
background-color: @green-10;
padding: 7.5px;
height: 56px;
width: 56px;
border-radius: 50%;
margin-right: 24px;
.icon-inner-container {
align-items: center;
border: @green-30 3.5px solid;
border-radius: 50%;
display: flex;
justify-content: center;
height: 42px;
width: 42px;
}
i {
color: @green;
font-size: 21px;
}
}
}
.svg-arrow-icon {
position: relative;
left: 4px;
bottom: 1px;
}
// `Layout | Grid` display options
.row-equal-column-heights {
@media (min-width: @screen-sm-min) {
display: flex;
flex-flow: row wrap;
div[class*='col-'] {
display: flex;
flex-direction: column;
.card,
.no-card {
height: 100%;
}
}
}
}
.vertically-center-col {
// remove margin to better vertically align
// some elements need to be nested within a container, and others are directly within .no-card/.card
.card:first-child,
.no-card:first-child {
.cms-element-container {
> *:first-child {
margin-top: 0;
}
}
> *:first-child:not(.cms-element-container) {
margin-top: 0;
}
}
.card:last-child,
.no-card:last-child {
.cms-element-container {
> *:last-child {
margin-bottom: 0;
}
}
> *:last-child:not(.cms-element-container) {
margin-bottom: 0;
}
}
@media (min-width: @screen-sm-min) {
display: flex;
div[class*='col-'] {
align-self: center;
}
}
}
.reverse-col-order-mobile {
@media (max-width: @screen-sm-min) {
display: flex;
flex-flow: column;
flex-direction: column-reverse;
}
}
.row-within-card {
.no-card {
> :first-child {
margin-top: 0;
}
> :last-child {
margin-bottom: 0;
}
}
}
.contact-form-error-container {
padding-bottom: calc(@line-height-computed / 2);
}
.row-top-padding-sm {
padding-top: @padding-sm;
}
.row-top-padding-md {
padding-top: @padding-md;
}
.row-top-padding-lg {
padding-top: @padding-lg;
}
.row-top-padding-xl {
padding-top: @padding-xl;
}
.row-top-padding-xxl {
padding-top: @padding-xxl;
}
.row-bottom-padding-sm {
padding-bottom: @padding-sm;
}
.row-bottom-padding-md {
padding-bottom: @padding-md;
}
.row-bottom-padding-lg {
padding-bottom: @padding-lg;
}
.row-bottom-padding-xl {
padding-bottom: @padding-xl;
}
.row-bottom-padding-xxl {
padding-bottom: @padding-xxl;
}
@media (min-width: @screen-sm-min) {
.desktop-left-margin-sm {
margin-left: @margin-sm;
}
.desktop-left-margin-md {
margin-left: @margin-md;
}
.desktop-left-margin-lg {
margin-left: @margin-lg;
}
.desktop-left-margin-xl {
margin-left: @margin-xl;
}
.desktop-left-margin-xxl {
margin-left: @margin-xxl;
}
.desktop-right-margin-sm {
margin-right: @margin-sm;
}
.desktop-right-margin-md {
margin-right: @margin-md;
}
.desktop-right-margin-lg {
margin-right: @margin-lg;
}
.desktop-right-margin-xl {
margin-right: @margin-xl;
}
.desktop-right-margin-xxl {
margin-right: @margin-xxl;
}
}
.top-margin-sm {
margin-top: @margin-sm;
}
.top-margin-md {
margin-top: @margin-md;
}
.top-margin-lg {
margin-top: @margin-lg;
}
.top-margin-xl {
margin-top: @margin-xl;
}
.top-margin-xxl {
margin-top: @margin-xxl;
}
@media (max-width: @screen-xs-max) {
.mobile-bottom-margin-sm {
margin-bottom: @margin-sm;
}
.mobile-bottom-margin-md {
margin-bottom: @margin-md;
}
.mobile-bottom-margin-lg {
margin-bottom: @margin-lg;
}
.mobile-bottom-margin-xl {
margin-bottom: @margin-xl;
}
.mobile-bottom-margin-xxl {
margin-bottom: @margin-xxl;
}
}
@media (max-width: @screen-sm-min) {
.col-xs-padding-sm {
.col-xs-12:not(:first-child) {
padding-top: @padding-sm;
}
}
.col-xs-padding-md {
.col-xs-12:not(:first-child) {
padding-top: @padding-md;
}
}
.col-xs-padding-lg {
.col-xs-12:not(:first-child) {
padding-top: @padding-lg;
}
}
.col-xs-padding-xl {
.col-xs-12:not(:first-child) {
padding-top: @padding-xl;
}
}
.col-xs-padding-xxl {
.col-xs-12:not(:first-child) {
padding-top: @padding-xxl;
}
}
}
.website-redesign {
// mobile breakpoint is md in website redesign
@media (max-width: @screen-sm-max) {
.col-xs-padding-sm {
.col-xs-12:not(:first-child) {
padding-top: @padding-sm;
}
}
.col-xs-padding-md {
.col-xs-12:not(:first-child) {
padding-top: @padding-md;
}
}
.col-xs-padding-lg {
.col-xs-12:not(:first-child) {
padding-top: @padding-lg;
}
}
.col-xs-padding-xl {
.col-xs-12:not(:first-child) {
padding-top: @padding-xl;
}
}
.col-xs-padding-xxl {
.col-xs-12:not(:first-child) {
padding-top: @padding-xxl;
}
}
}
}
.bottom-align-last-entry {
display: flex;
flex-direction: column;
* {
&:last-child {
flex: 1;
align-content: end;
}
}
}