This commit is contained in:
boonsboos
2025-09-08 22:59:59 +02:00
commit aca5cd42f1
36 changed files with 1137 additions and 0 deletions

45
util/index.html Normal file
View File

@@ -0,0 +1,45 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="stylesheet" href="win95.css" />
<title>Document</title>
<script src="https://html2canvas.hertzen.com/dist/html2canvas.min.js"></script>
</head>
<body>
<!-- my first idea was to use this win95 css shit, but it sucked and was bad. -->
<div id="card" class="card w95" style="height: 1076px; width: 1918px">
<div class="card-header" style="height: 60px"></div>
</div>
<div
id="wallpaper"
style="
background-image: url('tiles/Clouds_\(Windows_95\).png');
background-repeat: repeat;
height: 360px;
width: 640px;
"
></div>
</body>
<script>
html2canvas(card, {
width: 1920,
height: 1080,
windowWidth: 1920,
windowHeight: 1080,
}).then((canvas) => {
document.body.appendChild(canvas);
});
html2canvas(wallpaper, {
width: 640,
height: 360,
windowWidth: 1920,
windowHeight: 1080,
}).then((canvas) => {
document.body.appendChild(canvas);
});
</script>
</html>

View File

@@ -0,0 +1,13 @@
U+25BD : WHITE DOWN-POINTING TRIANGLE {Hamilton operator}
U+25BC : BLACK DOWN-POINTING TRIANGLE
U+2606 : WHITE STAR
U+2605 : BLACK STAR
U+25C6 : BLACK DIAMOND
U+25CE : BULLSEYE

Binary file not shown.

After

Width:  |  Height:  |  Size: 98 KiB

BIN
util/tiles/Gold_Weave.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

BIN
util/tiles/Red_Blocks.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 380 B

BIN
util/tiles/Stitches.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 268 B

1
util/tiles/i.txt Normal file
View File

@@ -0,0 +1 @@
from https://windowswallpaper.miraheze.org/wiki/Windows_95

498
util/win95.css Normal file
View File

@@ -0,0 +1,498 @@
/*
WIN95.CSS
https://github.com/AlexBSoft/win95.css
Author: Alex B (alex-b.me)
License: MIT
Version: 1.2.0
06.12.2020
*/
html {
position: relative;
min-height: 100%;
}
/*
Body styles
*/
body {
font-family: "Windows Regular", monospace;
background: teal;
color: white;
padding-bottom: 28px;
}
/*
Button styles
*/
.btn {
border-width: 2px;
border-style: outset;
border-color: buttonface;
border-right-color: #424242;
border-bottom-color: #424242;
background: silver;
color: black;
padding: 0 0 4px;
border-radius: 1px;
}
.btn:hover {
border: 2px inset #fff;
background: silver;
color: #424242;
box-shadow: -1px -1px #000;
}
.btn:focus {
border: 2px inset #fff !important;
background: silver;
color: #424242;
box-shadow: -1px -1px #000 !important;
outline: 0 !important;
background: url(background.bmp);
}
.btn:active {
border: 2px inset #fff !important;
color: #424242;
box-shadow: -1px -1px #000 !important;
outline: 0 !important;
background: url(background.bmp);
}
.btn-primary {
padding-left: 8px;
padding-right: 8px;
}
button:focus {
outline: 1px dotted;
}
.btn.disabled,
.btn:disabled {
cursor: default;
background-color: silver;
border-style: outset;
border-color: buttonface;
border-right-color: #424242;
border-bottom-color: #424242;
color: grey;
text-shadow: 1px 1px #fff;
}
/*
CARDS
*/
.card {
border: solid;
border-width: 2px;
border-bottom-color: #424242;
border-right-color: #424242;
border-left-color: #fff;
border-top-color: #fff;
background: silver;
color: #212529;
}
.card.square {
border-radius: 0px;
}
.card.square .card-header {
border-radius: 0px;
}
.card.w95 .card-header {
background: #08216b;
/* OR #000082 is better?*/
}
.card-header {
background: -webkit-linear-gradient(left, #08216b, #a5cef7);
color: #fff;
display: block;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
padding-top: 2px;
padding-bottom: 1px;
text-align: left;
}
.card-header.icon {
padding-left: 4px;
}
.header-inactive {
background: gray !important;
}
/*
LIST GROUPS
*/
.list-group {
border: solid;
border-width: 2px;
border-bottom-color: #424242;
border-right-color: #424242;
border-left-color: #fff;
border-top-color: #fff;
background: silver;
color: #212529;
}
.list-group-item {
position: relative;
display: block;
background: transparent;
color: #212529;
}
.list-group-item-primary {
color: white;
background: -webkit-linear-gradient(left, #08216b, #a5cef7);
}
.list-group-item-action:hover {
color: #08216b;
}
/*
NAVBAR
*/
.navbar-95 {
background: silver;
margin: 0;
border: 1px outset #fff;
min-height: 40px;
padding: 0 6px;
color: #212529;
}
.navbar-brand {
color: #212529;
padding: 0 6px;
}
.nav-link {
text-decoration: none;
display: inline-block;
padding: 0 9px;
color: #212529;
}
.dropdown-menu {
display: none;
min-width: 119px;
padding: 0 0 2px;
margin-left: 12px;
font-size: 12px;
list-style-type: none;
background: silver;
border: 1.8px outset #fff;
border-radius: 0;
-webkit-box-shadow: 1.5px 1.5px #000;
box-shadow: 1.5px 1.5px #000;
}
.dropdown-item {
padding: 1px 0 1px 2px;
}
.dropdown-item:hover {
color: #08216b;
}
.navbar-light .navbar-toggler.collapsed .navbar-toggler-icon {
width: 32px;
background: url(icons/directory_closed_cool-5.png);
}
.navbar-light .navbar-toggler .navbar-toggler-icon {
width: 32px;
background: url(icons/directory_open_cool-5.png);
}
.navbar-toggler {
width: auto;
}
/*
FOOTER
*/
.taskbar {
cursor: default;
background-color: silver;
margin: 16px 0 0 0;
padding: 0 8px;
position: static;
bottom: 0;
border-top: 2px outset #fff;
z-index: 228;
width: 100%;
margin-right: 0px;
position: absolute;
bottom: 0;
}
.taskbar .start-button {
cursor: default;
display: inline-block;
border: 1px outset #fff;
padding: 0 0 0 2px;
box-shadow: 1px 1px #000;
margin-bottom: 2px;
font-size: 14px;
}
.taskbar .time {
color: #212529;
margin-top: 2px;
text-align: right;
font-size: 14px;
margin-right: 0px;
}
#page-content {
flex: 1 0 auto;
}
/*
ICONS
*/
.icon-16 {
margin-bottom: 2px;
max-height: 16px;
}
.icon-16-4 {
margin-bottom: 4px;
max-height: 16px;
}
/*
FORMS
*/
.form-95 {
width: 100%;
border: 2px inset #d5d5d5;
color: #424242;
background: #fff;
box-shadow: -1px -1px 0 0 #828282;
margin-top: 4px;
padding-left: 2px;
}
.bootstrap-select,
textarea:focus,
textarea.form-control:focus,
input.form-control:focus,
input[type="text"]:focus,
input[type="password"]:focus,
input[type="email"]:focus,
input[type="number"]:focus,
[type="text"].form-control:focus,
[type="password"].form-control:focus,
[type="email"].form-control:focus,
[type="tel"].form-control:focus,
[contenteditable].form-control:focus {
outline: 0 !important;
}
input[type="radio"],
input[type="checkbox"] {
position: absolute;
left: -9999px;
}
.form-check-label::before,
.form-check-label::after {
content: "";
position: absolute;
top: 0;
left: 0;
}
.form-check-label {
margin-left: 6px;
}
input[type="radio"] + .form-check-label::before,
input[type="radio"] + .form-check-label::after {
border-radius: 50%;
}
.form-check-label::before {
height: 20px;
width: 20px;
top: 3px;
padding-right: 2px;
border: 2px inset #d5d5d5;
background: white;
box-shadow: -1px -1px 0 0 #828282;
}
input[type="radio"] + .form-check-label::after {
display: none;
width: 8px;
height: 8px;
margin: 6px;
top: 3px;
background: black;
}
input[type="checkbox"] + .form-check-label::after {
display: none;
background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23000' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3e%3c/svg%3e");
width: 12px;
height: 12px;
margin: 4px;
top: 3px;
}
input:checked + .form-check-label::after {
display: block;
}
/*
Progress bar
*/
.progress {
height: 1rem;
overflow: hidden;
font-size: 0.75rem;
background-color: silver;
border-radius: 0rem;
border: 1px inset #d5d5d5;
color: #424242;
}
.progress-bar {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-orient: vertical;
-webkit-box-direction: normal;
-ms-flex-direction: column;
flex-direction: column;
-webkit-box-pack: center;
-ms-flex-pack: center;
justify-content: center;
color: #fff;
text-align: center;
background-color: #1a0094;
transition: width 0.6s ease;
}
.progress-bar-blocks {
background-image: linear-gradient(90deg, transparent 75%, #d5d5d5 25%);
background-size: 1rem 1rem;
}
/*
TABS
*/
.tab-content {
background: silver;
border: solid;
border-width: 2px;
border-bottom-color: #424242;
border-right-color: #424242;
border-left-color: #fff;
border-top-color: silver;
padding: 1rem 1.4rem;
}
.nav-tabs {
border-bottom: 2px solid white;
}
.nav-tabs .nav-item {
position: relative;
margin-bottom: 0;
background: #c0c0c0;
color: black;
border-top-left-radius: 4px;
border-top-right-radius: 4px;
border-right: 1px solid #5a5a5a;
box-sizing: border-box;
}
.nav-tabs .nav-item .nav-link {
color: black;
padding: 0.2rem 1.8rem;
box-sizing: border-box;
transform: none;
}
.nav-tabs .nav-item .nav-link.active {
position: relative;
background: #c0c0c0;
}
.nav-tabs .nav-item:not(:first-child) .nav-link.active {
border-left: 1px solid #5a5a5a;
}
.nav-tabs .nav-item:first-child {
border-left: 2px solid white;
}
.nav-tabs .nav-item .nav-link.active:after {
content: "";
display: block;
width: 100%;
height: 2px;
position: absolute;
left: 0;
bottom: -2px;
background: #c0c0c0;
}
.nav-tabs .nav-link {
border: 0;
padding: 1rem 1rem;
}
/*
MODAL
TODO: make it draggable;
*/
.modal-content {
box-shadow: 1px 1px 0 0 #424242;
border: 1px solid #fff;
border-right-color: #848484;
border-bottom-color: #848484;
background: silver;
padding: 2px;
}
.modal-header {
height: 32px;
background: -webkit-linear-gradient(left, #08216b, #a5cef7) !important;
color: white;
padding-top: 0px;
padding-bottom: 0px;
padding-left: 6px;
padding-right: 6px;
}
.modal-header .btn {
margin-top: 5px;
padding-bottom: 10px;
height: 22px;
width: 22px;
}
.modal-header .btn span {
position: absolute;
top: 6px;
right: 14px;
}
.modal-title {
padding-top: 2px;
padding-bottom: 1px;
}
.modal-footer {
padding: 6px;
}
/*
TABLES
*/
.table {
background: white;
border-color: #c0c0c0;
}
.table-bordered {
border: 1px solid #c0c0c0;
}
.table-bordered td,
.table-bordered th {
border: 1px solid #c0c0c0;
}
.table td,
.table th {
padding: 0.75rem;
vertical-align: top;
border-top: 1px solid #c0c0c0;
}