Skip to content

Instantly share code, notes, and snippets.

@djekl
Created April 15, 2026 12:07
Show Gist options
  • Select an option

  • Save djekl/4bc37319f5f82fb7872c97e904a66003 to your computer and use it in GitHub Desktop.

Select an option

Save djekl/4bc37319f5f82fb7872c97e904a66003 to your computer and use it in GitHub Desktop.
Xbox One Achievement in CSS (Regular and Rare)
<div class="content">
<div class="content-settings">
<h1>Xbox One Achievement</h1>
<input value="My First Pen" class="content-settings__input" id="a_title" placeholder="Achievement" type="text" />
<input value="100" class="content-settings__input" id="a_score" placeholder="Score" type="number" />
<div class="content-settings__check">
<input checked type="checkbox" id="a_rare" />
<label for="a_rare">
Rare
</label>
</div>
<button id="a_trigger" class="content-settings__button">Trigger</button>
</div>
<!-- ELEMENTS FOR ANIMATION: -->
<div class="achievement">
<div class="animation">
<div class="circle">
<div class="img trophy_animate trophy_img">
<img class="trophy_1" src="https://dl.dropboxusercontent.com/s/k0n14tzcl4q61le/trophy_full.svg"/>
<img class="trophy_2" src="https://dl.dropboxusercontent.com/s/cd4k1h6w1c8an9j/trophy_no_handles.svg"/>
</div>
<div class="img xbox_img">
<img src="https://dl.dropboxusercontent.com/s/uopiulb5yeo1twm/xbox.svg?dl=0"/>
</div>
<div class="brilliant-wrap">
<div class="brilliant">
</div>
</div>
</div>
<div class="banner-outer">
<div class="banner">
<div class="achieve_disp">
<span class="unlocked">
</span>
<div class="score_disp">
<div class="gamerscore">
<img width="20px" src="https://dl.dropboxusercontent.com/s/gdqf5amvjkx9rfb/G.svg?dl=0"/>
<span class="acheive_score"></span>
</div>
<span class="hyphen_sep">-</span>
<span class="achiev_name"></span>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
let achievementSound = new Audio('https://dl.dropboxusercontent.com/s/8qvrpd69ua7wio8/XboxAchievement.mp3')
let achievementSoundRare = new Audio('https://dl.dropboxusercontent.com/s/po1udpov43am81i/XboxOneRareAchievement.mp3')
const achievement = () => {
let title = document.getElementById('a_title').value
let score = document.getElementById('a_score').value
let rare = document.getElementById('a_rare').checked
document.querySelector('.achiev_name').innerText = title
document.querySelector('.acheive_score').innerText = score
document.getElementById("a_trigger").disabled = true
document.querySelector('.unlocked').innerText = rare ? 'Rare achievement unlocked' : 'Achievement unlocked'
if (rare) {
achievementSoundRare.play()
document.querySelector('.achievement').classList.add('rare')
} else {
achievementSound.play()
}
document.querySelector('.circle').classList.add('circle_animate')
document.querySelector('.banner').classList.add('banner-animate')
document.querySelector('.achieve_disp').classList.add('achieve_disp_animate')
setTimeout(() => {
document.querySelector('.circle').classList.remove('circle_animate')
document.querySelector('.banner').classList.remove('banner-animate')
document.querySelector('.achieve_disp').classList.remove('achieve_disp_animate')
document.getElementById("a_trigger").disabled = false
if (rare) {
document.querySelector('.achievement').classList.remove('rare')
}
}, 12000)
}
document.getElementById('a_trigger').addEventListener('click', () => {
achievement()
})
body{
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
margin: 0;
}
*{
box-sizing: border-box;
}
.content{
height: 100vh;
display: flex;
justify-content: center;
}
.content-settings{
max-width: 420px;
width: 100%;
padding: 40px 20px;
}
.content-settings__input{
display: block;
width: 100%;
border: none;
font-size: 16px;
padding: 8px 12px;
border-bottom: 2px #eee solid;
margin-bottom: 8px;
outline: none!important;
transition: border-color .2s ease-in-out;
}
.content-settings__input:focus{
border-color: #39960C
}
.content-settings__check {
display: block;
position: relative;
padding-left: 35px;
margin-bottom: 12px;
font-size: 22px;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
.content-settings__check input {
position: absolute;
opacity: 0;
cursor: pointer;
}
.content-settings__check label::before {
content: "";
cursor: pointer;
position: absolute;
top: 0;
left: 0;
height: 24px;
width: 24px;
background-color: #eee;
transition: background-color .2s ease-in-out;
}
.content-settings__check:hover input + label::before {
background-color: #ccc;
}
.content-settings__check input:checked + label::before{
background-color: #39960C;
}
.content-settings__check label{
font-size: 16px;
line-height: 24px;
display: block;
}
.content-settings__check label:after {
content: "";
position: absolute;
display: none;
}
.content-settings__check input:checked + label:after {
opacity: 1;
}
.content-settings__check label:after {
cursor: pointer;
opacity: 0;
display: block;
transition: opacity .2s ease-in-out;
left: 8px;
top: 4px;
width: 5px;
height: 10px;
border: solid white;
border-width: 0 2px 2px 0;
-webkit-transform: rotate(45deg);
-ms-transform: rotate(45deg);
transform: rotate(45deg);
}
.content-settings__button{
display: block;
width: 100%;
border: none;
background: #39960C;
color: #fff;
font-size: 16px;
padding: 8px 12px;
cursor: pointer;
transition: background-color .2s ease-in-out, color .2s ease-in-out;
outline: none!important;
}
.content-settings__button[disabled]{
opacity: 0.8;
cursor: not-allowed;
color: #333!important;
background-color: #eee!important;
}
.content-settings__button:hover{
background: #40a90e;
}
.content-settings__button:active{
background-color: #32830a;
color: #fff;
}
.achievement *{
box-sizing: border-box;
}
.achievement {
position: fixed;
pointer-events: none;
width: 100%;
bottom: 16px;
z-index: 100;
}
@keyframes rotate {
0% {
transform: rotateY(0deg);
}
50% {
transform: rotateY(360deg);
}
100% {
transform: rotateY(0deg);
}
}
@keyframes scale_circle_1 {
0% {
transform: scale3d(0, 0, 0);
}
2% {
opacity: 1;
}
5% {
transform: scale3d(1, 1, 1);
opacity: 0.8;
}
6% {
opacity: 0;
}
9% {
opacity: 0;
}
10% {
transform: scale3d(1, 1, 1);
opacity: 0;
}
90% {
transform: scale3d(0, 0, 0);
}
92% {
opacity: 1;
}
95% {
transform: scale3d(1, 1, 1);
opacity: 0.8;
}
96% {
opacity: 0;
}
99% {
opacity: 0;
}
100% {
transform: scale3d(1, 1, 1);
opacity: 0;
}
}
@keyframes circle_grow_move {
1% {
opacity: 0;
transform: scale(0.1);
}
4% {
transform: scale(1.1);
}
5% {
transform: scale(1);
opacity: 1;
}
11% {
transform: translate(0);
background-color: #39960C;
}
24% {
transform: translateX(-140px);
background-color: #42ae0e;
}
85% {
transform: translateX(-140px);
background-color: #42ae0e;
}
89% {
transform: translateX(0);
background-color: #39960C;
}
94% {
transform: scale(1);
}
96% {
transform: scale(1.1);
}
98% {
transform: scale(0.1);
opacity: 1;
}
99% {
opacity: 0;
}
100% {
transform: scale(0.1);
}
}
@keyframes trophy_animate_opacity {
0% {
opacity: 0;
}
20% {
opacity: 0;
}
24% {
opacity: 1;
}
90% {
opacity: 1;
}
95% {
opacity: 0;
}
100% {
opacity: 0;
}
}
@keyframes xbox_animate_opacity {
0% {
opacity: 1;
}
19% {
opacity: 1;
transform: scale3d(1,1,1);
}
23% {
opacity: 0;
}
90% {
opacity: 0;
}
95% {
opacity: 1;
}
100% {
opacity: 1;
}
}
@keyframes banner-animate {
0% {
width: 75px;
opacity: 0;
}
2% {
opacity: 0;
}
4% {
opacity: 1;
}
11% {
width: 75px;
}
24% {
width: 355px;
}
85% {
width: 355px;
}
89% {
width: 75px;
opacity: 1;
}
90% {
opacity: 0;
}
}
@keyframes textSlide {
0% {
transform: translateY(85px);
opacity: 0;
}
20% {
transform: translateY(85px);
opacity: 0;
}
25% {
transform: translateY(0);
opacity: 1;
}
79% {
transform: translateY(0);
opacity: 1;
}
84% {
transform: translateY(-115px);
opacity: 0;
}
100% {
opacity: 0;
}
}
.animation {
width: 355px;
height: 110px;
padding: 5px 0px 5px 0px;
position: relative;
margin: auto;
display: -ms-flexbox;
display: flex;
-ms-flex-wrap: wrap;
flex-wrap: wrap;
-ms-flex-align: center;
align-items: center;
-ms-flex-pack: center;
justify-content: center;
}
.circle.circle_animate {
animation: circle_grow_move;
animation-duration: 10.5s;
transform-origin: center;
}
.circle.circle_animate::before {
animation: scale_circle_1;
animation-duration: 10.5s;
transform-origin: center;
animation-iteration-count: 2;
}
.circle.circle_animate::after {
animation: scale_circle_1;
animation-duration: 10.5s;
animation-delay: 0.1s;
transform-origin: center;
}
.circle.circle_animate .trophy_animate {
animation: trophy_animate_opacity;
animation-duration: 10.5s;
}
.circle.circle_animate .xbox_img {
animation: xbox_animate_opacity;
animation-duration: 10.5s;
z-index: 102;
}
.rare .trophy_img{
display: none;
}
.circle {
width: 75px;
height: 75px;
top: 0;
opacity: 0;
margin: 0 auto;
border-radius: 100%;
background: #39960C;
position: relative;
overflow: hidden;
z-index: 4;
}
.circle::before {
content: "";
opacity: 0;
width: 75px;
height: 75px;
background-color: #40a90e;
position: absolute;
top: 0;
left: 0;
border-radius: 50%;
display: block;
}
.circle::after {
content: "";
opacity: 0;
width: 75px;
height: 75px;
background-color: #32830a;
position: absolute;
top: 0;
left: 0;
border-radius: 50%;
display: block;
}
.rare .circle::after{
z-index: -1;
}
.rare .circle::before{
z-index: -1;
}
.circle .img {
height: 50%;
left: 25%;
top: 25%;
position: absolute;
z-index: 100;
}
.circle .img img {
height: 100%;
position: absolute;
}
.circle .trophy_1 {
animation: rotate;
animation-duration: 6s;
animation-iteration-count: infinite;
}
.achieve_disp_animate {
animation: textSlide;
animation-duration: 10.5s;
}
.banner {
width: 355px;
height: 75px;
position: relative;
left: 0;
opacity: 0;
display: -ms-flexbox;
display: flex;
-ms-flex-direction: column;
flex-direction: column;
-ms-flex-align: center;
align-items: center;
-ms-flex-pack: center;
justify-content: center;
right: 0;
margin: 0 auto;
background: #39960C;
overflow: hidden;
border-radius: 100px;
}
.banner-outer {
display: -ms-flexbox;
display: flex;
-ms-flex-align: center;
align-items: center;
-ms-flex-line-pack: center;
align-content: center;
width: 100%;
top: -75px;
position: relative;
}
.banner.banner-animate {
animation: banner-animate;
animation-duration: 10.5s;
}
.achieve_name::before,
.achieve_score::before {
display: none !important;
opacity: 0;
content: "";
}
.achieve_name::after,
.achieve_score::after {
display: none;
content: "";
}
.achieve_disp {
display: -ms-flexbox;
display: flex;
-ms-flex-direction: column;
flex-direction: column;
width: 60%;
position: absolute;
-ms-flex-pack: center;
justify-content: center;
margin-left: 95px;
left: 0;
height: 100%;
top: 0;
}
.achieve_disp input {
opacity: 1 !important;
}
.achieve_disp .score_disp {
width: 100%;
display: -ms-flexbox;
display: flex;
-ms-flex-direction: row;
flex-direction: row;
-ms-flex-align: start;
align-items: flex-start;
margin-bottom: 0 !important;
}
.achieve_disp .achiev_name {
border: none;
outline: none;
background: none;
font-size: 13pt;
color: white;
line-height: 24px;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
.acheive_score {
margin-left: 5px;
margin-right: 5px;
color: white;
}
.unlocked {
width: 100%;
color: white;
font-weight: 400;
}
.gamerscore {
display: -ms-flexbox;
display: flex;
-ms-flex-direction: row;
flex-direction: row;
-ms-flex-align: center;
align-items: center;
height: 24px;
}
.gamerscore input {
margin-left: 5px;
width: 30px;
margin-right: 5px;
background: none;
outline: none;
border: none;
color: white;
overflow: visible;
font-family: 'open sans', sans-serif;
font-weight: bold;
font-size: 13pt;
}
.hyphen_sep {
margin-right: 5px;
color: white;
font-size: 15pt;
line-height: 24px;
}
.rare .brilliant-wrap{
display: block;
}
.brilliant-wrap{
display: none;
height: 75px;
width: 75px;
border-radius: 50%;
overflow: hidden;
z-index: 101;
animation: brilliant-wrap 10s ease-in-out;
opacity: 0;
}
.brilliant {
height: 75px;
width: 75px;
background-image: url('https://dl.dropboxusercontent.com/s/ocn6nk0102mtiwq/spritesheet.png');
background-size: 11025px 75px;
background-position: right;
animation: brilliant 7.4s steps(147) 2s;
}
@keyframes brilliant {
0% {
background-position: 0;
}
100% {
background-position: -11025px;
}
}
@keyframes brilliant-wrap{
0%, 20%{
opacity: 0;
}
20.00001%{
opacity: 1;
}
90% {
opacity: 1;
}
95%{
opacity: 0;
}
}

Xbox One Achievement in CSS (Regular and Rare)

Xbox One Achievement recreated in HTML/CSS/JS There are two types of achievements: regular and rare.

  • Sound added

A Pen by Adam Cosman on CodePen.

License.

Comments are disabled for this gist.