Robert Birming

Bear Blog Guestbooks styles

Guestbooks is a small embeddable widget that makes it easy to add a guestbook to any Bear Blog page.

It ships with its own default look, but a few CSS tweaks make it feel like a native part of your theme instead of a bolted-on widget. It also includes support for the optional "Proof of Work" and "Verification Question" features.


Form preview

Guestbook form to match the theme

Messages preview

Guestbook messages styled to match the theme

Guestbook styles

input,
select,
textarea {
  font: inherit;
  color: var(--text-color);
}

#guestbooks___guestbook-form-container {
  margin-block: 1.8rem;
}

#guestbooks___guestbook-form-container form {
  display: flex;
  flex-direction: column;
  gap: 0.9rem;
  margin: 0;
}

#guestbooks___guestbook-form-container .guestbooks___input-container {
  box-sizing: border-box;
  width: 100%;
  margin: 0;
}

#guestbooks___guestbook-form-container :is(input, textarea, button, select) {
  font: inherit;
  color: inherit;
  appearance: none;
}

#guestbooks___guestbook-form-container :is(input[type="text"], input[type="email"], input[type="url"], textarea, select) {
  display: block;
  box-sizing: border-box;
  width: 100%;
  max-width: 100%;
  padding-block: 0.55rem;
  padding-inline: 0.7rem;
  background-color: var(--code-background-color);
  border: 1px solid color-mix(in srgb, var(--text-color), transparent 78%);
  border-radius: 4px;
}

#guestbooks___guestbook-form-container textarea {
  min-height: 7.5em;
  resize: vertical;
}

#guestbooks___guestbook-form-container :is(input, textarea, select):focus-visible {
  outline: 2px solid var(--link-color);
  outline-offset: 2px;
}

#guestbooks___guestbook-form-container :is(button, input[type="submit"]) {
  align-self: flex-start;
  padding-block: 0.35rem;
  padding-inline: 0.9rem;
  background-color: var(--code-background-color);
  border: 1px solid color-mix(in srgb, var(--text-color), transparent 78%);
  border-radius: 4px;
  cursor: pointer;
}

@media (hover: hover) {
  #guestbooks___guestbook-form-container :is(button, input[type="submit"]):hover {
    color: var(--background-color);
    background-color: var(--text-color);
    border-color: var(--text-color);
  }
}

#guestbooks___guestbook-form-container :is(button, input[type="submit"]):focus-visible {
  color: var(--background-color);
  background-color: var(--text-color);
  border-color: var(--text-color);
  outline: 2px solid var(--link-color);
  outline-offset: 2px;
}

#guestbooks___guestbook-form-container :is(button, input[type="submit"]):disabled {
  opacity: 0.7;
  cursor: not-allowed;
}

#guestbooks___guestbook-form-container input[type="checkbox"] {
  appearance: none;
  display: inline-block;
  width: 1.1rem;
  height: 1.1rem;
  margin: 0;
  background-color: var(--code-background-color);
  border: 1px solid color-mix(in srgb, var(--text-color), transparent 40%);
  border-radius: 3px;
  cursor: pointer;
  position: relative;
}

#guestbooks___guestbook-form-container input[type="checkbox"]:checked {
  background-color: var(--link-color);
  border-color: var(--link-color);
}

#guestbooks___guestbook-form-container input[type="checkbox"]:checked::after {
  content: "";
  position: absolute;
  left: 0.32rem;
  top: 0.14rem;
  width: 0.28rem;
  height: 0.55rem;
  border: solid var(--background-color);
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}

#guestbooks___guestbook-form-container label:has(input[type="checkbox"]) {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font: inherit;
  color: var(--text-color);
  cursor: pointer;
}

#guestbooks___guestbook-form-container input[type="checkbox"]:focus-visible {
  outline: 2px solid var(--link-color);
  outline-offset: 3px;
}

#guestbooks___challenge-answer-container:empty {
  display: none;
}

#guestbooks___challenge-answer-container {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  margin-block-start: -1rem;
}

#guestbooks___challenge-answer-container input {
  margin-block-start: 0.3rem !important;
}

#guestbooks___challenge-answer-container * {
  margin: 0;
}

#guestbooks___guestbook-messages-header {
  display: flex;
  align-items: center;
  gap: 0.4em;
  margin-block: 1.8rem 1rem;
}

#guestbooks___guestbook-messages-header::before {
  content: "💬";
  transform: translateY(1px);
}

#guestbooks___guestbook-messages-container > div {
  margin-block: 1.2em;
  padding-block: 1em;
  padding-inline: 1.2em;
  background-color: var(--code-background-color);
  border: 1px solid color-mix(in srgb, var(--text-color), transparent 78%);
  border-radius: 4px;
}

#guestbooks___guestbook-messages-container :is(blockquote, p) {
  margin: 0.35em 0 0;
  padding: 0;
  border: 0;
  background: none;
  font-style: normal;
  color: inherit;
}

#guestbooks___guestbook-messages-container blockquote::before {
  content: none;
}

#guestbooks___guestbook-messages-container time {
  color: color-mix(in srgb, var(--text-color), transparent 45%);
  white-space: nowrap;
}

#guestbooks___guestbook-messages-container a {
  color: var(--link-color);
}

#guestbooks___guestbook-messages-container a:visited {
  color: var(--visited-color);
}

#guestbooks___guestbook-messages-container .guestbook-message-reply {
  position: relative;
  margin-block: 0.9rem 0.2rem;
  margin-inline-start: 1.6rem;
  padding-block: 0.9em;
  padding-inline: 1.1em;
  background-color: color-mix(in srgb, var(--link-color) 18%, var(--code-background-color));
  border: 1px solid color-mix(in srgb, var(--link-color) 30%, color-mix(in srgb, var(--text-color), transparent 78%));
  border-radius: 4px;
}

#guestbooks___guestbook-messages-container .guestbook-message-reply::before {
  content: "";
  position: absolute;
  inset-block-start: -1rem;
  inset-inline-start: -0.9rem;
  width: 0.7rem;
  height: 1.6rem;
  border-inline-start: 2px solid color-mix(in srgb, var(--text-color), transparent 78%);
  border-block-end: 2px solid color-mix(in srgb, var(--text-color), transparent 78%);
  border-end-start-radius: 4px;
  opacity: 0.8;
}

#guestbooks___guestbook-made-with {
  margin-block-start: 0.5em;
}

Want more? Check out the full Bear Blog library.