diff options
| author | stephanchrst <stephanchrst@gmail.com> | 2022-05-10 21:51:50 +0700 |
|---|---|---|
| committer | stephanchrst <stephanchrst@gmail.com> | 2022-05-10 21:51:50 +0700 |
| commit | 3751379f1e9a4c215fb6eb898b4ccc67659b9ace (patch) | |
| tree | a44932296ef4a9b71d5f010906253d8c53727726 /addons/website_blog/static/src/scss | |
| parent | 0a15094050bfde69a06d6eff798e9a8ddf2b8c21 (diff) | |
initial commit 2
Diffstat (limited to 'addons/website_blog/static/src/scss')
| -rw-r--r-- | addons/website_blog/static/src/scss/website_blog.scss | 304 |
1 files changed, 304 insertions, 0 deletions
diff --git a/addons/website_blog/static/src/scss/website_blog.scss b/addons/website_blog/static/src/scss/website_blog.scss new file mode 100644 index 00000000..e62f5065 --- /dev/null +++ b/addons/website_blog/static/src/scss/website_blog.scss @@ -0,0 +1,304 @@ +// ======= VARIABLES ======= +$o-wblog-sidebar-width: 280px; +$o-wblog-loader-size: 50px; + +// ======= ANIMATIONS ======= +// Generic fade-in +@keyframes o-wblog-fade-In { + 0% { opacity: 0; } + 100% { opacity: 1; } +} + +@keyframes o-wblog-loader { + 0%, 100% { + animation-timing-function: cubic-bezier(0.5, 0, 1, 0.5); + } + 0% { + transform: rotateY(0deg); + } + 50% { + transform: rotateY(1800deg); + animation-timing-function: cubic-bezier(0, 0.5, 0.5, 1); + } + 100% { + transform: rotateY(3600deg); + } +} + + +// ======== MIXINS ========= +// Create easing-linear-gradients. Compared to the standards liner-gradients +// these are smoother and blends into their context increasing readability when +// acts as background for text placed over images. +// based on: https://css-tricks.com/easing-linear-gradients/ +@mixin o-wbblog-scrim-gradient($colorFrom, $colorTo) { + $scrimStops: 0% 0%, 26.2% 19%, 45.9% 34%, 61.8% 47%, 72.2% 56.5%, 80.6% 65%, 87.4% 73%, 92.5% 80.2%, 95.8% 86.1%, 97.9% 91%, 99.2% 95.2%, 99.8% 98.2%, 100% 100%; + $stops: (); + @each $scrimStop in $scrimStops { + $stops: append($stops, mix($colorTo, $colorFrom, nth($scrimStop, 1)) nth($scrimStop, 2), comma) + } + + background-image: linear-gradient(#{$stops}); +} + +//------------------------------------------------------------------------------ +// Website Blog +//------------------------------------------------------------------------------ +.website_blog { + .css_website_mail { + .o_has_error { + border-color: red; + } + .css_nav_month { + display: none; + &:first-of-type { + display: block; + } + } + } + + .o_wblog_page_cards_bg { + // To be applied to the main container when 'card design' option is + // enabled. Provide a slight darker bg that will blend the background + // color chosen by the user, visually increasing the contrast in case of + // brights (or white) backgrounds. + // It shouldn't be noticeable on dark backgrounds. + background-color: rgba(black, 0.005); + } + + .o_wblog_read_with_sidebar { + max-width: map-get($container-max-widths, md) + $o-wblog-sidebar-width; + } + + // This option class is assigned to the post's content using the "Customize" + // menu. The aim is to be able to write simple articles on the fly, + // achieving a good design without being forced to use snippets. + .o_wblog_read_text { + font-size: 18px; + line-height: 28px; + font-weight: 300; + + p, ul, ol { + margin-bottom: 1.55em; + } + + li { + margin-bottom: 1em; + } + + .lead { + font-size: 26px; + line-height: 34px; + margin-bottom: 40px; + } + } + + .o_wblog_author_avatar { + width: 1.2em; + height: 1.2em; + max-width: none; + object-fit: cover; + } + + .o_wblog_author_avatar_date { + // Resize in order to double the current font-size and accommodate + // two text lines, name and date. + width: 2em; + height: 2em; + max-width: none; + object-fit: cover; + } + + .o_wblog_social_links > a { + @include size(3em); + > i { + font-size: 1.3em; + } + } + + // Blog Post Page + // ============================================== + #o_wblog_post_content { + min-height: 350px !important; + + a.oe_mail_expand:after { + content: " →"; + } + a.oe_mail_expand { + font-weight: bold; + } + } + + #o_wblog_post_comments { + .o_portal_chatter > hr { + display: none; + } + } + + // Blog Post Page Cover + // ============================================== + .o_wblog_post_page_cover { + + // Cover sizes + // ============================================== + &.cover_auto { + padding: 3rem 0; + // The actual height will always be 'auto'. The following + // min-height rule is set to trigger the page transition only. + min-height: 1px; + } + + // "Regular Cover" design sizes + // ============================================== + &.o_wblog_post_page_cover_regular { + &.o_full_screen_height { + min-height: 70vh !important; + } + + &.o_half_screen_height { + min-height: 40vh !important; + } + + &.cover_auto { + min-height: 150px; + padding: 0; + } + } + + // If a cover image is defined, adapt inner typography + &.o_record_has_cover { + .o_record_cover_image:after { + content: ""; + display: block; + @include o-position-absolute(0,0,50%,0); + @include o-wbblog-scrim-gradient(rgba(black, 0.5), transparent); + } + + .o_wblog_post_title { + color: white; + } + + &.o_wblog_post_page_cover_regular { + .o_record_cover_image:after { + visibility: hidden; + } + } + } + + } + + // Blog Post Specific + // ============================================== + .o_wblog_post_title { + #o_wblog_post_name { + font-weight: $display4-weight; + line-height: $display-line-height; + // Default font-size. + @include font-size($display4-size); + } + + #o_wblog_post_subtitle { + font-weight: $lead-font-weight; + // Default font-size. + @include font-size($lead-font-size); + } + } + + // Refine multi-lines titles when using 'regular' cover + .o_wblog_regular_cover_container #o_wblog_post_name { + line-height: 1; + padding-bottom: 0.5rem; + } + + .o_wblog_post_page_cover_footer { + min-height: 33vh; + // Emulate native jQuery 'swing' easing to match js code + transition: all 0.3s cubic-bezier(.02, .01, .47, 1); + } + + #o_wblog_next_container { + background-color: $body-bg; + cursor: pointer; + + .o_wblog_next_loader { + transform: translateZ(1px); + + div { + @include size($o-wblog-loader-size); + background: rgba(black, 0.15); + animation: o-wblog-loader 2.4s cubic-bezier(0, 0.2, 0.8, 1) infinite; + } + } + + .o_wblog_next_fake_btn { + height: $o-wblog-loader-size; + } + } + + #o_wblog_post_main.o_wblog_post_main_transition { + animation: o-wblog-fade-In 1s cubic-bezier(.02, .01, .47, 1); + } + + // Blog Index Pages + // ============================================== + #o_wblog_posts_loop { + .o_record_cover_container { + box-shadow: inset 0 0 0 1px rgba(white, 0.3); + + padding-top: 33%; + height: auto!important; + // This is mandatory as we do not want the CoverProperties + // sizing classes to be applied here + min-height: auto!important; + + &:hover .o_record_cover_image { + opacity: 0.8; + } + } + + .o_wblog_normalize_font { + // normalize fonts + font-size: 13px; + line-height: 1.45; + } + + .o_wblog_post_list_author { + @include o-wbblog-scrim-gradient(transparent, rgba(black, 0.5)); + } + + &.o_wblog_list_view { + .o_record_cover_container { + padding-top: 20%; + } + .o_wblog_post_cover_nocard .o_record_cover_container { + padding-top: 33%; + } + } + + } + + // Editor Helpers + // ============================================== + body.editor_enable & { + // Make empty covers visible in edit mode + .o_record_cover_container.o_wblog_post_page_cover:not(.o_record_has_cover) { + padding: 30px 0; + } + + // Hide the big "DRAG BUILDING BLOCKS HERE" box when inside a sidebar. + // The purple lines are enough to help the user dropping snippets. + #o_wblog_sidebar .oe_structure:empty { + display: none; + } + } +} + +#o_wblog_post_content_jump { + @extend .o_scroll_button; + @include size($o-wblog-loader-size); + background-color: rgba(black, 0.5); + + &:hover { + background-color: rgba(black, 0.7); + } +} |
