ReedyBear's Blog

Christmas Theme 2026 (archive)

I previously posted

Christmas Theme for Bear Blog

Which has my christmas theme code

But just to be 100% sure I capture all changes I made since then, here's my CURRENT christmas theme code. I plan to start working on a new theme soon. I thought I was going to do it now, but Idk I don't think I'm in the mood.

/* @import url('https://fonts.googleapis.com/css2?family=Roboto+Mono:wght@100;200;300;400;500;600;700;800;900&display=swap');  
*/  

:root {  
    /* a color i saved idk why: #847996 */  
    cursor: url('https://reedybear.com/bearblog/cursor-wh.png'), auto;  
  
    /* Standard: Things that are non-creative, such as shades of black/white/grey.*/  
    --font-main: 'Roboto Mono', monospace;  
    --font-secondary: 'Roboto Mono', monospace;  
    --font-scale: .9em;  
    --heading-color: #232333;  
    --text-color: #232333;  
    --link-color: #232333;  
    --visited-color: #232333;  
    /*--main-color: #ff0000;*/  
    --code-background-color: #f2f2f2;  
    --code-color: #222;  
    --blockquote-color: #222;   
}  

/* my main styles */  
:root {  
      /* header */  
    --header_background: #620062;  
    --header_background_mobile: #620062;  
    --header_border_radius:  0px 0px 16px 16px;  
    --header_link_color: white;  
    --header_heading_color: #FCEF30;  
    --header_shadow_color:  #9d009d;  
    --header_link_underline_color: #FCEF30;  
    --header_link_hover_background: none;  
    --na_header_h1_background: none;  
  
    /* link hover */  
    --link_hover_underline_color: orange;  
    --link_hover_color: white;  
    --link_hover_border_color: orange;  
    --link_hover_border_top_color: purple;  
    
    /* other */  
    --underline_color: #a000a0;  
    --body_box_shadow: inset 0px 0px 3px #d900d93b ,0px 10px 10px #8000808a;  
    --toc_border_color: #9674cc; /* dark mode: #8439d */  
    --background_body: #fff;  
    --background_main: inherit;  
    --background_main_mobile: inherit;  
    --upvote_count_bg: #8b398b;  
    --main_padding: 20px;  
  
}  

/* Christmas 2025 styles */  
:root {  
      /* header */  
    --header_background: #06672F;  
      --header_background:  
      url(https://bear-images.sfo2.cdn.digitaloceanspaces.com/reedybear/2025-christmas-lights-top-lgbear-1.png)  
          left/contain repeat-x, linear-gradient(352deg,rgba(255, 0, 5, 1) 0%, rgba(6, 103, 47, 1) 29%, rgba(6, 103, 47, 1) 72%, rgba(255, 0, 5, 1) 100%);  

      --header_background_mobile:  
      url(https://bear-images.sfo2.cdn.digitaloceanspaces.com/reedybear/2025-christmas-lights-top-lgbear.png)  
          left/contain repeat-x,  
          linear-gradient(344deg,rgba(255, 0, 5, 1) 0%, rgba(6, 103, 47, 1) 29%, rgba(6, 103, 47, 1) 72%, rgba(255, 0, 5, 1) 100%);  
    --header_border_radius: 0;  
    --header_link_color: white;  
    --header_heading_color: white;  
    --header_shadow_color: #146B3A;  
    --header_link_underline_color: #FF0005;  
    --header_link_hover_background: #FF0005;  
    --na_header_h1_background: url(https://bear-images.sfo2.cdn.digitaloceanspaces.com/reedybear/2025-christmas-lights-1.png) center/contain repeat-x;  
  
    /* link hover */  
    --link_hover_underline_color: #BB2528;  
    --link_hover_color: white;  
    --link_hover_border_color: #BB2528;  
    --link_hover_border_top_color: #06672F;  
    
    /* other */  
    --underline_color: #06672F;  
    --body_box_shadow: inset 0px 0px 3px #06672F3b ,0px 10px 10px #06672F8a;  
    --body_box_shadow: inset 0px 0px 7px #FF000576 ,0px 10px 10px #06672F8a;  
    --toc_border_color: #9674cc; /* dark mode: #8439d */   
    --background_main: url(https://bear-images.sfo2.cdn.digitaloceanspaces.com/reedybear/xmaslightssides-5.png) top/contain repeat-y, white;  
    --background_main_mobile: url(https://bear-images.sfo2.cdn.digitaloceanspaces.com/reedybear/xmaslightssides-6.png) top/contain repeat-y, white;  
    --background_body: url(https://bear-images.sfo2.cdn.digitaloceanspaces.com/reedybear/pexels-est1307-250177.webp) center/cover no-repeat fixed;  
    --upvote_count_bg: #06672F;  
    --main_padding: 30px;  
    
}  

main > h1:first-child {  
	background: #06672f;  
	color: white;  
	text-shadow: red;  
	padding: 0px 16px;  
	border-radius: 16px;  
	box-shadow: var(--body_box_shadow);  
}  

/** xmas lights at top of page DONT THINK I NEED THESE  
html::before {  
  background:var(--header_h1_background);  
  display:block;  
  content:"‌";  
  width: 100%;  
  position: absolute;  
  height:35px;  
}  
*/  


body > header {  
	background: var(--header_background);  
	padding: 4px 12px;  
	border-radius: var(--header_border_radius);  
	color: white;  
	--link-color: var(--header_link_color);  
	--heading-color: var(--header_heading_color);  
	--underline_color: var(--header_link_underline_color);  
	box-shadow: 0px 0px 15px var(--header_shadow_color);  
	margin: 0;  
    border: none;  
}  
body > header > nav a {  
    border-left: 2px solid transparent;  
    border-right: 2px solid transparent;  
}  
header h1 {  
  border-bottom: none;  
  text-align: left;  
}  



body > header > nav a:hover {  
  --underline_color: var(--link_hover_underline_color);  
  --link-color: var(--link_hover_color);  
  background: var(--header_link_hover_background);  
  border: 2px solid var(--link_hover_underline_color);  
  padding-top:4px;  
  padding-bottom: 2px;  
  border-radius: 75% 9px / 30% 8px;  
}  

body > main {  
  box-shadow: var(--body_box_shadow);  
  padding: var(--main_padding);  
  background: var(--background_main);  
}  

main > h1:first-child {  
    margin-bottom:0;  
}  

main > p:has(> i > time){  
    margin: 0;  
}  

/**  
footer > span::after {  
    content: "Cursor icons by G-Cat on flaticon";  
}  
*/  


body {  
    font-family: var(--font-secondary);  
    font-size: var(--font-scale);  
    margin: auto;  
    padding: 0px;  
    max-width: 720px;  
    text-align: left;  
    background: var(--background_body);  
    word-wrap: break-word;  
    overflow-wrap: break-word;  
    line-height: 1.5;  
    color: var(--text-color);  
    background: var(--background_body);  
}  

h1,  
h2,  
h3,  
h4,  
h5,  
h6 {  
    font-family: var(--font-main);  
    color: var(--heading-color);  
    border-bottom: 2px solid var(--underline_color);  
    text-align: center;  
}  

a {  
    color: var(--link-color);  
    font-family: var(--font-main);  
    cursor: url('https://reedybear.com/bearblog/link-cursor-wh.png'), pointer;  
    text-decoration: none;  
    border-bottom: 3px solid var(--underline_color);  
  	padding: 0 4px;  
  	border-top: 1px solid transparent;  
}  

a:hover {  
    text-decoration: none;  
  	border-radius:8px;  
    border-color: var(--link_hover_border_color);  
    border-top: 1px solid var(--link_hover_border_top_color);  
}  


nav a, nav a:hover {  
    margin-right: 8px;  
    padding: 4px 5px 2px 4px;  
  
  	/*  
    border-radius: 25% 8px 12% 10px;  
  	border-radius: 25% 12%;  
    border-radius: 50% 9px / 60% 6px;  
    */  
  	border-radius: 80% 9px / 40% 8px;  
    text-wrap:nowrap;  
}  

strong,  
b {  
    color: var(--heading-color);  
}  

button {  
    margin: 0;  
    cursor: url('https://reedybear.com/bearblog/btn-cursor-wh.png'), pointer;  

}  

main {  
    line-height: 1.6;  
}  

table {  
    width: 100%;  
}  

hr {  
    border: 0;  
    border-top: 1px dashed;  
}  

img {  
    max-width: 100%;  
}  

code {  
    font-family: monospace;  
    padding: 2px;  
    background-color: var(--code-background-color);  
    color: var(--code-color);  
    border-radius: 3px;  
}  

blockquote {  
    border-left: 1px solid #999;  
    color: var(--code-color);  
    padding-left: 20px;  
    font-style: italic;  
}  

footer {  
    margin-top: 0px;  
    /*border-top: 3px dotted #232333; */  
    padding: 25px 0;  
    text-align: center;  
    background: #ffffffa0;  
}  

footer a {  
	background: #0006;  
	color: white;  
	border-radius: 8px;  
}  
footer a:hover {  
	background: #000c;  
}  

a.title {  
    border:none;  
    padding:0;  
}  

.title:hover {  
    text-decoration: none;  
}  

.title h1 {  
    font-size: 1.5em;  
}  

.inline {  
    width: auto !important;  
}  

.highlight,  
.code {  
    padding: 1px 15px;  
    background-color: var(--code-background-color);  
    color: var(--code-color);  
    border-radius: 3px;  
    margin-block-start: 1em;  
    margin-block-end: 1em;  
    overflow-x: auto;  
}  



table {  
    border-spacing: 0;  
}  

th,  
td {  
    padding: 6px 13px;  
    border: 1px solid #dfe2e5;  
    font-size: 1em;  
}  

/** The only part that needs modification for standard setups */  
.upvote-button {  
    --width: 50px;  
    --height: 50px;  
    /* bear water fish happy */  
    --unclicked_url: url("https://bear-images.sfo2.cdn.digitaloceanspaces.com/reedybear/polar-bear6.webp");  
    --hover_url: url("https://bear-images.sfo2.cdn.digitaloceanspaces.com/reedybear/polar-bear7.webp");  
    --clicked_url: url("https://bear-images.sfo2.cdn.digitaloceanspaces.com/reedybear/polar-bear9.webp");  
    --clicked_and_hovering_url: url("https://bear-images.sfo2.cdn.digitaloceanspaces.com/reedybear/polar-bear8.webp");      
    /* bear and penguin */  
  /*  
    --unclicked_url: url("https://bear-images.sfo2.cdn.digitaloceanspaces.com/reedybear/polar-bear1.webp");  
    --hover_url: url("https://bear-images.sfo2.cdn.digitaloceanspaces.com/reedybear/polar-bear2.webp");  
    --clicked_url: url("https://bear-images.sfo2.cdn.digitaloceanspaces.com/reedybear/polar-bear4.webp");  
    --clicked_and_hovering_url: url("https://bear-images.sfo2.cdn.digitaloceanspaces.com/reedybear/polar-bear5.webp");      
  */  
}  


 /* hide the default button */  
.upvote-button svg {  
    display:none;  
}  
.upvote-count {  
	border: 1px solid lightgrey;  
	padding: 4px;  
	/* background: #fdfdfd; */  
    background: var(--upvote_count_bg);  
    color:white;  
  
  
}  
/* when your post is untoasted */  
.upvote-count::before {  
    background: var(--unclicked_url);  
    display:block;  
    width: var(--width);  
    height: var(--height);  
    background-size:cover;  
    content: "";  
}  
/* when mouse hovers over the toast button */  
.upvote-count:hover::before {  
    background: var(--hover_url);  
    display:block;  
    width: var(--width);  
    height: var(--height);  
    background-size: cover;  
    content: "";  
}  
/* when your post has been toasted */  
.upvote-button[disabled] .upvote-count::before {  
    background: var(--clicked_url);  
    display:block;  
    width: var(--width);  
    height: var(--height);  
    background-size: cover;  
    content: "";  
}  
/* When mouse is hovering over your toast button AFTER your post is toasted */  
.upvote-button[disabled] .upvote-count:hover::before {  
    background: var(--clicked_and_hovering_url);  
    display:block;  
    width: var(--width);  
    height: var(--height);  
    background-size: cover;  
    content: "";  
}  

/**  
* Adding photos to blog list  
*/  
/* it didn't work well  
* I got the image in, but I couldn't get the dang things to style how I wanted  
* Plus I'm not sure I liked it with photos... even though it's a bear!  

ul.blog-posts > li > a::after {  
    content: url("https://i.imgur.com/puT0UkBs.jpg");  
    content: url("https://i.imgur.com/laDt4Yf.png");  
    height:10px;  
    max-height:10px;  
    width:10px;  
    position:relative;  
    display:inline-block;  
    right: 10px;  
}  

ul.blog-posts > li > a {  
    position:relative;  
    margin-left: 10px;  
}  

ul.blog-posts > li {  
    display:inline-block;  
}  
/**/  

/* table of contents */  

.toc {  
	display: inline-block;  
	padding: 0px 24px 8px 24px;  
	margin: 0;  
	border: 2px dotted var(--toc_border_color);  
	border-radius: 4px;  
    line-height:1.5em;  
}  
.toc a {  
	text-decoration: none;  
    font-size: 1em;  
}  
.toc ol {  
  padding-left: 30px;  
}  
.toc ol > li > ul {  
   padding-left: 16px;  
}  

.toc ol > li > ul ul {  
   padding-left:32px;  
}  

#rb-jump-to-toc {  
    border-radius: 50%;  
    position:fixed;  
    bottom:30px;  
    right:30px;  
    width: 1em;  
    height: 1em;  
}  
#rb-jump-to-toc a, #rb-jump-to-toc a:hover {  
    background: none;  
    display: block;  
    padding: 3px;  
    width: 1em;  
    height: 1em;  
    border: solid black;  
    border-width: 0 3px 3px 0;  
    border-radius: 0px;  
    color: black;  
    transform: rotate(-135deg);  
  -webkit-transform: rotate(-135deg);  
    z-index:100;  
}  
#rb-jump-to-toc a:hover {  
    border-color: grey;  
}  

div.reference_links {  
    border: 1px solid black;  
    padding: 8px;  
}  

div.reference_links ul {  
    
}  

div.reference_links ul li {  
    display: inline-block;  
    margin: 4px;  
}  





/* blog post list */  
i time {  
    font-style: normal;  
    opacity: 0.7;  
}  

ul.blog-posts:not(:has(> li > p)) {  
    list-style-type: none;  
    padding: unset;  
}  

ul.blog-posts:not(:has(> li > p)) li {  
    display: flex;  
    margin-bottom: 10px;  
}  
ul.blog-posts:not(:has(> li > p)) li > a {  
     min-width: 5em;  
}  



ul.blog-posts:not(:has(> li > p)) li span {  
    flex: 0 0 130px;  
}  

ul.blog-posts:not(:has(> li > p)) li a:hover {  
   /* color: white !important; */  
}  

ul.blog-posts:not(:has(> li > p)) li a:visited {  
    color: var(--visited-color);  
}  

/* Make lists into grids */  
@media (min-width: 600px) {  
  ul.blog-posts:has(> li > p) {  
      display: grid;  
      grid-template-columns: auto 1fr 2fr;  
      grid-template-rows: auto;  
      grid-gap: 8px;  
  }  

  ul.blog-posts:has(> li > p) > li {  
      display:grid;  
      grid-template-columns: subgrid;  
      grid-column: 1 / span 3;  
      align-items: center;  
  }  

  ul.blog-posts:has(> li > p) > li > span {  
      grid-column: 1;  
  }  
  ul.blog-posts:has(> li > p) > li > a {  
      grid-column: 2;  
      margin: 0 4px;  
  }  
  ul.blog-posts:has(> li > p) > li > p {  
      grid-column: 3;  
  }  
}  

@media (max-width: 600px) {  
  body > header > nav a {  
       line-height: 2.0;  
  }  
  body > header {  
      background: var(--header_background_mobile);  
  }  
  body > main {  
    /*box-shadow: inset -5px -10px 5px #9015907d; */  
        background: var(--background_main_mobile);  
  }  
  ul.blog-posts:has(> li > p) {  
    list-style-type: none;  
    margin: 0;  
    padding: 0;  
  }  

 ul.blog-posts:has(> li > p) > li {  
      display:flex;  
      flex-direction: column;  
      padding: 16px 8px;  
      margin: 8px 0;  
  }  
  ul.blog-posts:has(> li > p) > li:nth-child(2n - 1) {  
      background: #eaeaea;  
      border-radius: 8px;  
      border: 1px dotted black;  
  }  
   ul.blog-posts:has(> li > p) > li:nth-child(2n) {  
      border: 1px solid black;  
      border-radius: 8px;  
  }  

  ul.blog-posts:has(> li > p) > li > span {  
      order: 2;  
      text-align: center;  
  }  
  ul.blog-posts:has(> li > p) > li > a {  
      order: 1;  
      text-align: center;  
  }  
  ul.blog-posts:has(> li > p) > li > p {  
      order: 3;  
      text-align: center;  
      padding: 0;  
      margin: 0;  
  }  
}  


/**** BEGIN CRAZY STYLES ****/  

main:has(a:hover) a:not(:hover){  
    animation: link_disappear 50s infinite,  
      shimmy_left 5s infinite;  
    position: relative;  
}  

main:has(a:hover) a:not(:hover)::before {  
    content: "FREE THE COWS" !important;  
    display:inline-block;  
    position: absolute;  
    bottom: 0;  
    left: 0;  
    animation: link_appear 50s infinite;  
    color: transparent;  
    text-wrap: nowrap;  
}  
main:has(a:hover) li:nth-child(2n) a:not(:hover)::before,  
main:has(a:hover) p:nth-child(2n) a:not(:hover)::before  
{  
    content: "END ANIMAL CRUELTY" !important;  
}  

main:has(a:hover) li:nth-child(2n-1) a:not(:hover) {  
     animation-delay: 0.1s;  
}  
main:has(a:hover) li:nth-child(2n) a:not(:hover) {  
     animation-delay: 0.2s;  
}  
main:has(a:hover) li:nth-child(3n) a:not(:hover) {  
     animation-delay: 0.3s;  
}  
main:has(a:hover) li:nth-child(4n) a:not(:hover) {  
     animation-delay: 0.4s;  
}  
main:has(a:hover) li:nth-child(5n) a:not(:hover) {  
     animation-delay: 0.5s;  
}  


main a {  
    display: inline-block;  
}  

main a:hover {  
    animation: link_weird 5s infinite;  
    animation-timing-function: linear;  
    /*overflow-y: hidden;*/  
    /*overflow-x: hidden;*/  
    /*text-wrap: nowrap;*/  
    /*text-overflow: clip;*/  
    /*display:inline-block;*/  
    position:relative;  
    display:inline-block;  
}  

main a:hover::before {  
    animation: link_before 5s infinite;  
    animation-timing-function: linear;  
    content: " ";  
    display:inline-block;  
    position: absolute;  
    top:0;  
    left: 0;  
    height: 100%;  
    border-radius: inherit;  

    background: rgba(0,0,0,0.3);  
}  

@keyframes link_before {  

    0% {  
        width: 0;  
    }  

    40% {  
        width: 100%;  
        background: rgba(0,0,0,0.3);  
    }  
    40.001% {  
        background: transparent;  
    }  
    100% {  
        background: transparent;  
    }  

}  

@keyframes link_weird {  

    0% {  
        /*color:inherit;*/  
        transform:scale(1,1);  
        transform: rotate(0deg);  
    }  

    40% {  
        transform:scale(1,1);  
        transform: rotate(0deg);  
    }  

    100% {  
        transform:scale(2,2);  
        transform: rotate(360deg);  
        /*color: transparent;*/  
    }  

}  

@keyframes link_disappear {  

    0% {  
        color:inherit;  
    }  

    5% {  
        color: transparent;  
    }  

    100% {  
        color: transparent;  
    }  

}  

@keyframes link_appear {  

    0% {  
        color:transparent;  
    }  

    3% {  
        color: transparent;  
    }  
    10% {  
        color: var(--link-color);  
    }  

    100% {  
        color: var(--link-color);  
  }  

}  

@keyframes shimmy_left {  

    0% {  
        transform: translateX(0);  
    }  

    25% {  
        transform: translateX(-20px);  
    }  

    75% {  
        transform: translateX(20px);  
    }  

    100% {  
        transform: translateX(0);  
    }  

}  

#bearblog