Merge branch 'design' into 'main'

Design front end main page

See merge request padas/24ss-5430-web-and-data-eng/gruppe-3/datadash!1
This commit is contained in:
Julian Klinke 2024-06-14 12:35:03 +02:00
commit 6dbafc99de
4 changed files with 200 additions and 0 deletions

113
html/index.html Normal file
View File

@ -0,0 +1,113 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>DataDash</title>
<link rel="stylesheet" href="main.css">
</head>
<body>
<main>
<header>
<h1>Welcome to DataDash</h1>
<p>The place to launch and discover datasets and API endpoints.</p>
</header>
<section id="recents">
<h2>Recently added:</h2>
<ul class="datasets">
<!-- Preliminary content to be replaced by data from our server: -->
<li class="dataset">
<div class="dataset-info">
<div class="icon standup"></div>
<div class="details">
<h3>Standup</h3>
<p>Simply daily accountability phone call, powered by AI</p>
</div>
</div>
<aside class="upvote">
<button class="upvote-btn">Upvote</button>
<span class="upvote-count">0</span>
<button class="downvote-btn">Downvote</button>
</aside>
</li>
<li class="dataset">
<div class="dataset-info">
<div class="icon tori"></div>
<div class="details">
<h3>Tori</h3>
<p>The simple mobile crypto wallet even your grandparents can use</p>
</div>
</div>
<aside class="upvote">
<button class="upvote-btn">Upvote</button>
<span class="upvote-count">0</span>
<button class="downvote-btn">Downvote</button>
</aside>
</li>
<li class="dataset">
<div class="dataset-info">
<div class="icon tyms"></div>
<div class="details">
<h3>Tyms</h3>
<p>Modern accounting ERP for ambitious businesses</p>
</div>
</div>
<aside class="upvote">
<button class="upvote-btn">Upvote</button>
<span class="upvote-count">0</span>
<button class="downvote-btn">Downvote</button>
</aside>
</li>
<li class="dataset">
<div class="dataset-info">
<div class="icon zapcardz"></div>
<div class="details">
<h3>ZapCardz</h3>
<p>Remember what you learn forever with AI powered flashcards</p>
</div>
</div>
<aside class="upvote">
<button class="upvote-btn">Upvote</button>
<span class="upvote-count">0</span>
<button class="downvote-btn">Downvote</button>
</aside>
</li>
<li class="dataset">
<div class="dataset-info">
<div class="icon peek"></div>
<div class="details">
<h3>Peek</h3>
<p>AI organizer and workspace for your browser tabs</p>
</div>
</div>
<aside class="upvote">
<button class="upvote-btn">Upvote</button>
<span class="upvote-count">0</span>
<button class="downvote-btn">Downvote</button>
</aside>
</li>
</ul>
</section>
<section id="top">
<h2>Most Liked:</h2>
<ul class="datasets">
<li class="dataset">
<div class="dataset-info">
<div class="icon standup"></div>
<div class="details">
<h3>Standup</h3>
<p>Simply daily accountability phone call, powered by AI</p>
</div>
</div>
<aside class="upvote">
<button class="upvote-btn">Upvote</button>
<span class="upvote-count">0</span>
<button class="downvote-btn">Downvote</button>
</aside>
</li>
</ul>
</main>
</body>
</html>

83
html/main.css Normal file
View File

@ -0,0 +1,83 @@
:root {
--bg-color: #222;
--fg-color: #555;
--text-color: #dbdbdb;
--pad-datasets: 1rem;
--pad-main: 2rem;
--min-card-size: 60ch;
font-size: 12pt;
}
body {
background-color: var(--bg-color, black);
color: var(--text-color, white);
}
main {
max-width: calc(2 * var(--min-card-size) + var(--pad-main) + var(--pad-datasets));
padding-inline: var(--pad-main);
margin-inline: auto;
container-type: inline-size;
}
header {
text-align: center;
margin-inline: .75rem;
}
.datasets {
padding-inline: var(--pad-datasets);
display: grid;
grid-template-columns: repeat(auto-fit, minmax(var(--min-card-size), 1fr));
gap: 1rem;
}
@container (width < 80ch) {
.datasets {
grid-template-columns: 1fr;
}
}
.dataset {
padding: 1rem 2rem;
background-color: var(--fg-color, darkgrey);
border-radius: 1rem;
list-style: none;
display: inline-flex;
align-items: center;
justify-content: space-between;
box-sizing: border-box;
}
.upvote {
margin-left: 1rem;
margin-block: 1rem;
display: flex;
flex-direction: column;
align-items: center;
gap: .5em;
}
.upvote-btn, .downvote-btn {
background: url(triangle.svg) no-repeat;
background-size: contain;
border: none;
width: 2em;
height: 2em;
padding: 0;
overflow: hidden;
color: transparent;
cursor: pointer;
}
.downvote-btn {
transform: rotate(180deg);
}
:is(.upvote-btn, .downvote-btn):is(:hover, :focus-visible) {
filter: brightness(1.5);
}
:is(.upvote-btn, .downvote-btn):active {
filter: brightness(1.75);
}

View File

@ -0,0 +1,2 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg width="16" height="16" viewBox="0 0 16 16" version="1.1" id="sad-looking-glass" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"><g id="main-layer"><path id="looking-glass" style="fill:none;stroke:#222222;stroke-width:1.5;stroke-linecap:round" d="M 11.22141,6 A 5.2214103,5.2214103 0 0 1 6,11.22141 5.2214103,5.2214103 0 0 1 0.77858973,6 5.2214103,5.2214103 0 0 1 6,0.77858973 5.2214103,5.2214103 0 0 1 11.22141,6 Z M 15.25,15.25 10,10" /><circle style="fill:#222222" id="left-eye" cx="4" cy="4.75" r="0.75" /><circle style="fill:#222222" id="right-eye" cx="8" cy="4.75" r="0.75" /><path style="fill:none;stroke:#222222;stroke-width:1.5;stroke-linecap:round" d="M 4,8 C 6,6.5 8,8 8,8" id="mouth" /></g></svg>

After

Width:  |  Height:  |  Size: 794 B

2
html/triangle.svg Normal file
View File

@ -0,0 +1,2 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg width="16" height="16" viewBox="0 0 16 16" version="1.1" id="svg1" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"><defs id="defs1" /><g id="layer1"><path style="fill:#222" d="M 0,16 8,0 16,16 Z" id="path1" /></g></svg>

After

Width:  |  Height:  |  Size: 306 B