Snippets Collections
/* Box sizing rules */
*::after {
  box-sizing: border-box;

/* Remove default margin */
dd {
  margin: 0;

/* Remove list styles on ul, ol elements with a list role, which suggests default styling will be removed */
ol[role='list'] {
  list-style: none;

/* Set core root defaults */
html:focus-within {
  scroll-behavior: smooth;

/* Set core body defaults */
body {
  min-height: 100vh;
  text-rendering: optimizeSpeed;
  line-height: 1.5;

/* A elements that don't have a class get default styles */
a:not([class]) {
  text-decoration-skip-ink: auto;

/* Make images easier to work with */
picture {
  max-width: 100%;
  display: block;

/* Inherit fonts for inputs and buttons */
select {
  font: inherit;

/* Remove all animations, transitions and smooth scroll for people that prefer not to see them */
@media (prefers-reduced-motion: reduce) {
  html:focus-within {
   scroll-behavior: auto;
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
/* the navbar-brand has two <span> children. The first contains the 'C'. The second contains the 'utespot' */
/* target the siblings of the first span in .navbar-brand */
.navbar-brand span + span {
	margin-left: 5px;
	/* we change the letter spacing to negative, so that the letters bunch up on top of each other. We use 'em' so that the spacing is relative to the element's font-size */
	letter-spacing: -0.52em;
	/* make it disappear */
	opacity: 0;
	/* we want it to animate -- just means move. when a css attribute changes, it will 'tween' between its old value and its new */
	/* we could target the transition to just work on opacity and letter-spacing, but 'all' is quick here*/
	transition: all 0.3s ease-out;

.navbar-brand:hover span + span {
	/* on hover, we spread the letters out again */
	/* since we set the transition (animate) to apply to all attributes, this change in letter-spacing will be animated (from its old value of -0.52em to its new of 0.1em) */
	letter-spacing: 0.1em;
	/* make it visible -- the transition:all will also apply to the opacity, so the opacity will also animate between its old value (0 - transparent) and its new (1 - opaque)*/
	opacity: 1;
element::after {
	/* ::before and ::after are pseudo-elements, and require a content attribute to exist. Often, we make it empty, because we are using these pseudo-elements to do funky little visual UI tricks, that have no content within. Also, mixing content and style feels wrong. */
	content: "";
	/* border on the bottom */
	border-bottom: 1px solid black;

	/* All the following is positioning stuff. It is absolute, so it is out of the flow, and we can put it wherever we want. We are putting it at the bottom of its (relative) parent, and we position its left-side 50% across the width of its parent (from the left). */
	position: absolute;
	width: 60%;
	bottom: 0;
	left: 50%;
	/* THEN we use the transform:translate to move it back to the left, but this time, just 50% of its OWN width. The effect of moving it right 50% of its parent, and left 50% of its own width, centers it in its parent. magic! */
	transform: translate(-50%, 0);
img {
	transition: all ease 500ms;

img:hover {
	transform: scale(1.25);
	opacity: 0.7;
body {
 font-family: 'Lato', sans-serif;
 font-weight: 300;
<link rel="preconnect" href="">
<link rel="preconnect" href="" crossorigin>
<link href="" rel="stylesheet"> 

h1, h2, h3, h4, h5, h6 {
 font-family: 'Prata', serif;
<link rel="preconnect" href="">
<link rel="preconnect" href="" crossorigin>
<link href="" rel="stylesheet"> 

Tue Nov 16 2021 08:30:41 GMT+0000 (UTC)

#css #reset #styling

Wed Jun 23 2021 06:02:59 GMT+0000 (UTC)

#css #styling

Wed Jun 23 2021 04:31:38 GMT+0000 (UTC)

#css #styling #fonts

Save snippets that work with our extensions

Available in the Chrome Web Store Get Firefox Add-on Get VS Code extension