Actions

Work Header

Skin for Recreating Danganronpa Text Boxes

Summary:

A work skin for recreating text boxes from across the Danganronpa series, Class Trials and extraneous post-game modes notwithstanding.

Notes:

Two years ago, I did a work skin based on the UI for just about every major aspect of Danganronpa I could think of that would be relevant to a fic. One of the chapters included a display for acquiring Truth Bullets. As I’ve become far more of an expert on CSS code since then, and after doing a skin for Persona 3 Reload’s text boxes earlier today, I figured it wouldn’t hurt to do a definitive take on Danganronpa’s ones. There’s a lot of fics in this fandom, anyway.

The Danganronpa V3: Killing Harmony and Project: Eden’s Garden chapters also include the pop-up for acquiring Truth Bullets.

EDIT 10/6/2025: Reorganized the HTML code. Updated the color palettes for and added ::first-letter pseudo-classes to the Killing Harmony section.

Chapter 1: Trigger Happy Havoc

Notes:

(See the end of the chapter for notes.)

Chapter Text


Sayaka Maizono: If you weren’t here with me, I just don’t know what I’d do. I’d be lost…

Sayaka Maizono: I hate that we had to meet again under such awful conditions, but… I’m relieved you’re with me.

Makoto Naegi: Sayaka…

Makoto Naegi: ( Standing here face to face and hearing her say that… )

Makoto Naegi: ( It’s nice, but… kind of embarrassing at the same time. )


Example HTML Code

<div class="dr1-box">
  <div>
    <p>
      <b class="name"><u>Sayaka Maizono</u><span>:</span></b>
      <span class="text">
        I hate that we had to meet again under such awful conditions, but… I’m relieved you’re with me.
      </span>
    </p>
  </div>

  <div class="protag">
    <p>
      <b class="name"><u>Makoto Naegi</u><span>:</span></b>
      <span class="text">
        Sayaka…
      </span>
    </p>
  </div>

  <div class="thinking">
    <p>
      <b class="name"><u>Makoto Naegi</u><span>:</span></b>
      <span class="text">
        <span>(</span>
        <i>Standing here face to face and hearing her say that…</i>
        <span>(</span>
      </span>
    </p>
  </div>
</div>

CSS Code

/* DR1 Text Box */

#workskin .dr1-box > div {
  color: white;
  margin: 45px auto 25px;
  position: relative;
  min-height: 84px;
  width: 600px;
  max-width: 100%;
  z-index: 1;
}

#workskin .dr1-box > div p {
  position: relative;
  z-index: 1;
}

#workskin .dr1-box > div::before {
  content: 'Speaking';
  align-items: center;
  color: #FFFFFFB0;
  display: flex;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  transform: scaleX(.8);
  position: absolute;
  top: -19.5px;
  right: 30px;
  height: 20px;
}

#workskin .dr1-box > div::after {
  content: '';
  background-color: #FD9800;
  border-top-right-radius: 50px;
  border-bottom-right-radius: 50px;
  display: block;
  position: absolute;
  top: -20px;
  right: 0;
  height: 103px;
  width: 100%;
  z-index: -1;
}

/* DR1 Text Box - Name Tag */

#workskin .dr1-box > div .name {
  align-items: center;
  background-color: #F8FFDB;
  color: #3B3A3F;
  display: flex;
  padding-left: 8px;
  text-overflow: ellipsis;
  white-space: nowrap;
  position: absolute;
  top: -20px;
  height: 20px;
  width: 52%;
}

#workskin .dr1-box > div .name::before {
  content: '';
  background-color: #FEBD01;
  border-left: 60px solid #F8FFDB;
  border-right: 6px solid #F8FFDB;
  display: block;
  transform: skew(60deg);
  position: absolute;
  right: -32px;
  height: 20px;
  width: 9px;
  z-index: -1;
}

#workskin .dr1-box > div .name u {
  text-decoration: none;
  transform: scaleY(.9);
  position: relative;
  top: 1px;
}

/* DR1 Text Box - Text */

#workskin .dr1-box > div .text {
  background-color: #404040;
  border-top-right-radius: 50px;
  border-bottom-right-radius: 50px;
  display: block;
  padding: 12px 70px 12px 18px;
  min-height: 60px;
}

#workskin .dr1-box > div .text::after {
  content: '🅧';
  align-items: center;
  color: #ECBA00;
  display: flex;
  font-size: 45px;
  opacity: 0.5;
  position: absolute;
  top: 0;
  right: 12px;
  height: 100%;
}

/* DR1 Text Box - Protagonists */

#workskin .dr1-box > div.protag .name,
#workskin .dr1-box > div.thinking .name {
  background: linear-gradient(to right, #ECBA00, #F8FFDB);
}

/* DR1 Box - Inner Monologue */

#workskin .dr1-box > div.thinking::before,
#workskin .dr1-box > div.thinking::after {
  display: none;
}

#workskin .dr1-box > div.thinking .text {
  color: #6AF7FF;
}

#workskin .dr1-box > div.thinking .text i,
#workskin .dr1-box > div.thinking .text em {
  font-style: normal;
}

#workskin .dr1-box > div.thinking .text b,
#workskin .dr1-box > div.thinking .text strong {
  font-style: italic;
  font-weight: normal;
}

/* DR1 Box - Nighttime */

#workskin .dr1-box.nighttime > div::after {
  background-color: #1B8ADA;
}

#workskin .dr1-box.nighttime > div .name {
  background-color: #E8F0FE;
}

#workskin .dr1-box.nighttime > div .name::before {
  background-color: #31BBF6;
  border-left-color: #E8F0FE;
  border-right-color: #E8F0FE;
}

#workskin .dr1-box.nighttime > div.protag .name,
#workskin .dr1-box.nighttime > div.thinking .name {
  background: linear-gradient(to right, #2CB8FF, #E8F0FE);
}

#workskin .dr1-box.nighttime > div .text::after {
  color: #0B8ED2;
}

/* DR1 Box - Unknown Time */

#workskin .dr1-box.unknown-time > div::after {
  background-color: #31B800;
}

#workskin .dr1-box.unknown-time > div .name {
  background-color: #F2FFDF;
}

#workskin .dr1-box.unknown-time > div .name::before {
  background-color: #9BFF00;
  border-left-color: #F2FFDF;
  border-right-color: #F2FFDF;
}

#workskin .dr1-box.unknown-time > div.protag .name,
#workskin .dr1-box.unknown-time > div.thinking .name {
  background: linear-gradient(to right, #92FF00, #F2FFDF);
}

#workskin .dr1-box.unknown-time > div .text::after {
  color: #92FF00;
}

/* Miscellaneous */

#workskin .dr1-box .name > span {
  display: none;
}

#workskin div.thinking .text > span:first-of-type,
#workskin div.thinking .text > span:last-of-type,
#workskin div.informational .text > span:first-of-type,
#workskin div.informational .text > span:last-of-type {
  display: none;
}

Other Color Variants


Sayaka Maizono: But there was nobody there.

Makoto Naegi: Someone tried to force their way into your room…?


Sayaka Maizono: I know how I look, but I’ve actually built some pretty good muscle jumping up and down on stage!

Makoto Naegi: That’s good, then…


Example HTML Code

<div class="dr1-box nighttime">
  <div>
    <p>
      <b class="name"><u>Sayaka Maizono</u><span>:</span></b>
      <span class="text">
        But there was nobody there.
      </span>
    </p>
  </div>
</div>

<div class="dr1-box unknown-time">
  <div>
    <p>
      <b class="name"><u>Sayaka Maizono</u><span>:</span></b>
      <span class="text">
        I know how I look, but I’ve actually built some pretty good muscle jumping up and down on stage!
      </span>
    </p>
  </div>
</div>

Notes:

I did Danganronpa V3: Killing Harmony’s text boxes first, and then went back and decided to look at Danganronpa: Trigger Happy Havoc, since it’s got less going on and looked relatively simple to construct. And wouldn’t you know, I was right. ‘Twas a fun enough distraction.