Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8" />
- <meta name="viewport" content="width=device-width, initial-scale=1.0" />
- <!-- fontawesome -->
- <script
- src="https://kit.fontawesome.com/83935518ee.js"
- crossorigin="anonymous"
- ></script>
- <!-- opengraph (optional) -->
- <meta content="https://bundlrs.cc/shellfie" property="og:url" />
- <meta content="discord themed template" property="og:title" />
- <meta content="by @shellfie on disc" property="og:description" />
- <meta content="#ffdbfb" name="theme-color" />
- <!-- end opengraph -->
- <title>Discord theme</title>
- <style>
- /* fonts */
- /* yes this is the discord font */
- @font-face {
- font-family: "gg sans medium";
- font-weight: 500;
- src: url("https://file.garden/ZRgh3nzfnhFDJvPp/gg-sans-Medium.woff")
- format("woff");
- }
- @font-face {
- font-family: "gg sans semibold";
- font-weight: 600;
- src: url("https://file.garden/ZRgh3nzfnhFDJvPp/gg-sans-Semibold.woff")
- format("woff");
- }
- @font-face {
- font-family: "gg sans bold";
- font-weight: 700;
- src: url("https://file.garden/ZRgh3nzfnhFDJvPp/gg-sans-Bold.woff")
- format("woff");
- }
- /* variables */
- :root {
- --main-color: #ffdbfb; /* background color of the profile */
- --accent: #ffb3f6; /* background color of boxes */
- --accent2: #d557ff; /* border color of boxes */
- --accent3: #a72edc; /* color of buttons & spotify progress bar */
- --text1: #000000; /* main text color */
- --text2: #c44acf; /* muted text color */
- --text3: #ffffff; /* edit buttons text color */
- --spacing: 3%; /* main number for margin, padding, etc */
- --border-radius: 8px; /* border radius for basically everything */
- font-size: 14px; /* 1rem */
- }
- /* box sizing */
- * {
- box-sizing: border-box;
- padding: 0;
- margin: 0;
- line-height: 1em;
- }
- /* global styles */
- body {
- font-family: "gg sans medium";
- color: var(--text1);
- height: 100dvh;
- width: 100vw;
- padding-top: 1rem;
- }
- /* utilities / misc text styling */
- .muted {
- color: var(--text2);
- }
- .bold {
- font-family: "gg sans bold";
- }
- .sub-header {
- font-size: 0.8rem;
- }
- [role="underline"] {
- text-decoration: underline;
- }
- a {
- color: var(--text1);
- }
- .flex {
- display: flex;
- }
- /* main container */
- .container-wrap {
- height: max-content;
- width: max-content;
- background: var(--main-color);
- border-radius: var(--border-radius);
- overflow: hidden;
- margin: 0 auto; /* center container */
- }
- .container {
- flex-direction: column;
- width: 330px; /* width of container */
- height: auto;
- }
- .container > * {
- width: 100%; /* make everything that is directly inside the container full width */
- }
- /* top area (banner and avatar) */
- .banner {
- height: 110px;
- background-image: url("https://file.garden/ZRgh3nzfnhFDJvPp/IMG_8556.png"); /* this is where you can change the banner image */
- background-size: cover;
- background-position: center;
- }
- /* paintbrush icon */
- .icon {
- background: hsla(0, 0%, 20%, 0.6);
- border-radius: 100%;
- width: 1.6em;
- height: 1.6em;
- display: flex;
- justify-content: center;
- align-items: center;
- position: relative;
- margin-left: auto;
- top: calc(var(--spacing) * 2);
- right: var(--spacing);
- }
- .icon i {
- color: white;
- font-size: 0.8em;
- }
- .icon:hover i {
- opacity: 0.5;
- }
- .avatar {
- margin: -15% auto 0 var(--spacing);
- border-radius: 100%;
- overflow: hidden;
- height: 100px;
- width: 100px;
- border: 7px solid var(--main-color);
- }
- .avatar img {
- object-fit: cover; /* make sure image covers entire container */
- height: 100%;
- width: auto;
- }
- /* boxes area + boxes */
- .box-area {
- padding: var(--spacing);
- }
- .box-area > :is(div, main) {
- min-height: 50px;
- width: 100%;
- border: 2.5px solid var(--accent2);
- border-radius: var(--border-radius);
- background: var(--accent);
- padding: calc(var(--spacing) + 1%);
- }
- .summary {
- padding: 0 !important;
- }
- .spotify,
- .main {
- margin-top: var(--spacing);
- }
- /* first box */
- /* line separating status / buttons */
- hr {
- width: 100%;
- border-style: solid hidden hidden hidden;
- border-top: 1px solid var(--accent2);
- }
- /* text styling */
- .summary h1 {
- font-size: 1.6em; /* name text */
- }
- .summary .status {
- display: block;
- margin-top: 2%;
- }
- .summary .inner {
- padding: var(--spacing);
- }
- .summary .inner:last-child {
- gap: var(--spacing);
- }
- /* edit buttons */
- .summary button {
- width: 50%; /* make both half width of container */
- border-radius: calc(var(--border-radius) / 2);
- height: 30px;
- font-family: "gg sans semibold";
- font-size: 0.9rem;
- background: var(--accent3);
- color: var(--text3);
- border: none;
- transition: opacity 0.2s ease;
- }
- .summary button:hover {
- opacity: 0.75; /* make buttons slightly transparent on hover */
- }
- /* spotify status */
- .spotify {
- flex-direction: column;
- gap: 5px;
- }
- /* add space between "listening to spotify" and spotify icon */
- .spotify-header {
- justify-content: space-between;
- }
- /* spotify icon, you can change the color if you want */
- .spotify-header i {
- font-size: inherit;
- color: #3ba55c;
- }
- .spotify-body {
- gap: var(--spacing);
- align-items: center; /* make sure content is aligned vertically */
- height: 60px;
- position: relative;
- }
- .spotify-img {
- height: 100%;
- width: auto;
- border-radius: calc(var(--border-radius) / 2);
- }
- /* pause/play icons container */
- .pause-play {
- position: absolute;
- bottom: 0;
- right: 0;
- }
- /* pause/play icons */
- .pause-play span {
- color: var(--accent3);
- font-size: 1.5rem;
- }
- /* progress bar */
- .spotify-bottom progress {
- -webkit-appearance: none;
- -moz-appearance: none;
- appearance: none;
- width: 100%;
- height: 2px;
- border: none;
- margin-bottom: 8px;
- }
- /* good lord. all CSS for progress bar since you have to style individually for different browsers */
- .spotify-bottom progress::-webkit-progress-bar {
- background-color: white;
- border-radius: 100px;
- }
- .spotify-bottom progress::-webkit-progress-value {
- background: var(--accent3);
- border-radius: 100px;
- }
- /* same as ::-webkit-progress-bar */
- .spotify-bottom progress::-moz-progress-bar {
- background: white;
- border-radius: 100px;
- }
- /* same as ::-webkit-progress-value */
- .spotify-bottom progress::-moz-progress-value {
- background: var(--accent3);
- border-radius: 100px;
- }
- /* start/end times */
- .spotify-bottom p {
- justify-content: space-between;
- font-size: 0.8rem;
- }
- /* final box */
- .main {
- flex-direction: column;
- gap: 7px;
- }
- .main .sub-header {
- display: block;
- margin-bottom: 0.25rem;
- }
- /* mute button */
- .main button {
- width: 100%;
- border-radius: var(--border-radius);
- height: 35px;
- font-size: 1rem;
- text-align: left;
- padding: 0.5rem 1rem;
- word-spacing: 10px;
- color: var(--text1);
- background: var(--accent);
- border: 2px solid var(--accent3);
- transition: background 0.2s ease;
- }
- .main button:hover {
- background: color-mix(in srgb, transparent 70%, var(--accent3));
- }
- </style>
- </head>
- <body>
- <div class="container-wrap">
- <!-- start main container -->
- <div class="container flex">
- <!-- start top area -->
- <div class="top-area">
- <!-- banner container; image can be changed in CSS -->
- <div class="banner">
- <span class="icon">
- <i class="fa-solid fa-paintbrush" title="Paintbrush"></i>
- </span>
- </div>
- <!-- end banner container -->
- <!-- start icon image -->
- <figure class="avatar">
- <!-- icon image (preferrably a square) -->
- <img
- src="https://file.garden/ZRgh3nzfnhFDJvPp/harmoney.jpeg"
- alt="Harmony/Paruko from Splatoon sitting on the floor"
- />
- </figure>
- <!-- end icon image -->
- </div>
- <!-- end top area -->
- <!-- start boxes area -->
- <div class="box-area">
- <!-- first box -->
- <div class="summary">
- <div class="inner">
- <!-- start text -->
- <h1 class="bold">name here</h1>
- <span>username</span>
- <br />
- <span class="pronouns muted">prn prn prn</span>
- <br />
- <span class="status">my status</span>
- <!-- end text -->
- </div>
- <hr />
- <div class="inner flex">
- <button>Edit user profile</button>
- <button>Edit server profile</button>
- </div>
- </div>
- <!-- end first box -->
- <!-- second box -->
- <div class="spotify flex">
- <!-- start spotify header -->
- <section class="spotify-header flex">
- <span class="bold sub-header">LISTENING TO SPOTIFY</span>
- <i class="fa-brands fa-spotify"></i>
- </section>
- <!-- end spotify header -->
- <!-- start spotify body -->
- <section class="spotify-body flex">
- <!-- album image (preferrably a square) -->
- <img
- class="spotify-img"
- alt="alt text goes here"
- src="https://file.garden/ZRgh3nzfnhFDJvPp/IMG_8562.jpeg"
- />
- <section>
- <header class="bold">Song Name</header>
- <span class="muted">by</span> Song Artist
- <br />
- <span class="muted">on</span> Song Album
- <div class="pause-play" onclick="toggleAudio()">
- <span id="audio-play"><i class="fa-solid fa-circle-play"></i></span>
- <span id="audio-pause" style="display: none;"><i class="fa-solid fa-circle-pause"></i></span>
- </div>
- </section>
- </section>
- <!-- end spotify body -->
- <!-- start spotify progress bar -->
- <section class="spotify-bottom">
- <progress min="1" max="100" value="0" class="progress" onchange="seekTo()"></progress>
- <p class="flex">
- <!-- start times -->
- <span class="current-time">0:00</span>
- <span class="total-time">0:00</span>
- <!-- end times -->
- </p>
- </section>
- <!-- end spotify progress bar -->
- </div>
- <!-- end second box -->
- <!-- third box -->
- <main class="main flex">
- <span class="sub-header bold">VOICE SETTINGS</span>
- <button><i class="fa-solid fa-microphone"></i> Mute</button>
- <div class="inner">
- <!-- start about section-->
- <span class="sub-header bold">ABOUT</span>
- <p>
- <a href="https://pastebin.com/fYvG06Yt">pastebin with code</a> ,, discord themed
- atomic bundlrs by @shellfie on disc, idc about credit just dont
- gatekeep the code! all colors are changeable through variables
- </p>
- <!-- end about section -->
- <br />
- <!-- start note section -->
- <span class="sub-header bold">NOTE</span>
- <p>
- <span role="underline">dni</span> info info info info info info
- info info info info info info info info info info
- <br />
- <br />
- <span role="underline">byf</span> info info info info info info
- info info info info info info info info info info
- </p>
- <!-- end note section -->
- <br />
- <!-- start interests section -->
- <span class="sub-header bold">ROLES</span>
- <p>
- <span role="underline">interests</span> info info info info info
- info info info info info info info info info info info
- </p>
- <!-- end interests section -->
- </div>
- </main>
- <!-- end third box -->
- </div>
- <!-- end boxes area -->
- </div>
- <!-- end main container -->
- </div>
- <script>
- // audio player
- // replace with your own url
- const audio = new Audio("https://file.garden/ZRgh3nzfnhFDJvPp/blitzit.mp3");
- // playing state
- let playing = false;
- // icons
- const play = document.getElementById("audio-play");
- const pause = document.getElementById("audio-pause");
- // time things
- let progress = document.querySelector(".progress");
- let update_time = setInterval(seekUpdate, 1000);
- let curr_time = document.querySelector(".current-time");
- let total_time = document.querySelector(".total-time");
- function toggleAudio() {
- // toggle playing state
- playing = !playing;
- // make icons show/hide
- if (playing) {
- play.style.display = "none";
- pause.style.display = "block";
- } else {
- play.style.display = "block";
- pause.style.display = "none";
- }
- // play/pause audio
- if (playing) audio.play();
- else audio.pause();
- }
- function seekTo() {
- seekto = audio.duration * (progress.value / 100);
- audio.currentTime = seekto;
- }
- function seekUpdate() {
- let seekPosition = 0;
- // check if the current track duration is a legible number
- if (!isNaN(audio.duration)) {
- seekPosition = audio.currentTime * (100 / audio.duration);
- progress.value = seekPosition;
- // calculate the time left and the total duration
- let currentMinutes = Math.floor(audio.currentTime / 60);
- let currentSeconds = Math.floor(audio.currentTime - currentMinutes * 60);
- let durationMinutes = Math.floor(audio.duration / 60);
- let durationSeconds = Math.floor(audio.duration - durationMinutes * 60);
- // adding a zero to the single digit time values
- if (currentSeconds < 10) { currentSeconds = "0" + currentSeconds; }
- if (durationSeconds < 10) { durationSeconds = "0" + durationSeconds; }
- if (currentMinutes < 10) { currentMinutes = currentMinutes; }
- if (durationMinutes < 10) { durationMinutes = durationMinutes; }
- curr_time.textContent = currentMinutes + ":" + currentSeconds;
- total_time.textContent = durationMinutes + ":" + durationSeconds;
- }
- }
- </script>
- </body>
- </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement