Skip to content

Commit

Permalink
new desgin for orbit
Browse files Browse the repository at this point in the history
  • Loading branch information
tinchox5 committed Jul 20, 2024
1 parent e40ae8b commit 760af99
Show file tree
Hide file tree
Showing 53 changed files with 1,120 additions and 9 deletions.
3 changes: 2 additions & 1 deletion .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,8 @@
],
"liveSassCompile.settings.excludeList": [
"**/node_modules/**",
".vscode/**"
".vscode/**",
"old/**"
],
"liveSassCompile.settings.generateMap": true,
"liveSassCompile.settings.autoprefix": [
Expand Down
1 change: 0 additions & 1 deletion assets/css/orbit-base.min.css

This file was deleted.

1 change: 0 additions & 1 deletion assets/css/orbit-base.min.css.map

This file was deleted.

1 change: 0 additions & 1 deletion assets/css/orbit-theme.min.css

This file was deleted.

1 change: 0 additions & 1 deletion assets/css/orbit-theme.min.css.map

This file was deleted.

2 changes: 1 addition & 1 deletion assets/css/orbit.min.css

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion assets/css/orbit.min.css.map

Large diffs are not rendered by default.

141 changes: 141 additions & 0 deletions examples/orbit/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,141 @@
<!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="../../dist/css/orbit.css">
<title>Document</title>
</head>
<body>
<div class="orbital-zone">
<div class="orbit-6">
<div class="vector x5"></div>

<div class="vector "></div>
<div class="vector "></div>
<div class="vector "></div>
<div class="vector"></div>
<div class="vector"></div>

<div class="vector"></div>
<div class="vector"></div>
<div class="vector"></div>
<div class="vector"></div>
<div class="vector"></div>
<div class="vector"></div>
</div>
<div class="orbit-9 ">
<o-sector class=""></o-sector>
<o-sector class=""></o-sector>
<o-sector></o-sector>
<o-sector></o-sector>
<o-sector></o-sector>
<o-sector></o-sector>
<o-sector class=" "></o-sector>
<o-sector class=" "></o-sector>
<o-sector class=" "></o-sector>
<o-sector class=" "></o-sector>
<o-sector></o-sector>
<o-sector></o-sector>
</div>

<div class="orbit-5"></div>
<div class="orbit-9 " style="border: none;">
<div class="satellite">

<div class="orbital-zone">
<div class="orbit-12 "></div>
</div>
</div>
<div class="satellite ">
<div class="orbital-zone">
<div class="orbit-12 "></div>
</div>
</div>
<div class="satellite ">
<div class="orbital-zone">
<div class="orbit-12 "></div>
</div>
</div>
<div class="satellite ">
<div class="orbital-zone">
<div class="orbit-12 "></div>
</div>
</div>
<div class="satellite ">
<div class="orbital-zone">
<div class="orbit-12 "></div>
</div>
</div>
<div class="satellite ">
<div class="orbital-zone">
<div class="orbit-12 "></div>
</div>
</div>
<div class="satellite ">
<div class="orbital-zone">
<div class="orbit-12 "></div>
</div>
</div>
<div class="satellite ">
<div class="orbital-zone">
<div class="orbit-12 "></div>
</div>
</div>
<div class="satellite ">
<div class="orbital-zone">
<div class="orbit-12 "></div>
</div>
</div>
<div class="satellite ">
<div class="orbital-zone">
<div class="orbit-12 "></div>
</div>
</div>
<div class="satellite ">
<div class="orbital-zone">
<div class="orbit-12 "></div>
</div>
</div>
<div class="satellite ">
<div class="orbital-zone">
<div class="orbit-12 "></div>
</div>
</div>
</div>
<div class="orbit-8"></div>
<div class="orbit-10"></div>

<div class="orbit-11">
<o-progress class="x2 rounded" style="--o-progress: 20"></o-progress>
</div>
<div class="orbit-12">
<div class="satellite"></div>
<div class="satellite"></div>
<div class="satellite"></div>
<div class="satellite"></div>
<div class="satellite"></div>
<div class="satellite"></div>
<div class="satellite"></div>
<div class="satellite"></div>
<div class="satellite"></div>
<div class="satellite"></div>
<div class="satellite"></div>
<div class="satellite"></div>
<div class="satellite"></div>
<div class="satellite"></div>
<div class="satellite"></div>
<div class="satellite"></div>
<div class="satellite"></div>
<div class="satellite"></div>
<div class="satellite"></div>
<div class="satellite"></div>
<div class="satellite"></div>
<div class="satellite"></div>
<div class="satellite"></div>
<div class="satellite"></div>
</div>
</div>
<script src="../../src/components.js"></script>
</body>
</html>
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
2 changes: 2 additions & 0 deletions old/orbit.scss
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
@import './orbit-base';
@import './orbit-theme';
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
13 changes: 13 additions & 0 deletions src/_orbit.scss
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
/* Orbit class */
.orbit, [class*='orbit-'] {
border: 1px solid #007bff; /* Orbit color and thickness */
border-radius: 50%;
position: absolute;
display: flex;
justify-content: center;
align-items: center;
--o-diameter: calc(var(--orbit-nth) * var(--o-lenght) / var(--max-orbits));
--o-radius: calc(var(--o-diameter) / 2);
width: calc(var(--o-diameter) / var(--ellipse-ratio-x));
height: calc(var(--o-diameter) / var(--ellipse-ratio-y));
}
49 changes: 49 additions & 0 deletions src/_orbital-zone.scss
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
/* Orbital zone class */
.orbital-zone {
--o-lenght: 300px;
display: flex;
align-items: center;
justify-content: center;
border: none;
width: var(--o-lenght);
aspect-ratio: 1;
position: absolute;
pointer-events: none;
}

.orbital-zone.top-left {
align-items: flex-start !important;
justify-content: flex-start !important;
}
.orbital-zone.top-center {
align-items: flex-start !important;
justify-content: center !important;
}
.orbital-zone.top-right {
align-items: flex-start !important;
justify-content: flex-end !important;
}
.orbital-zone.bottom-left {
align-items: flex-end !important;
justify-content: flex-start !important;
}
.orbital-zone.bottom-center {
align-items: flex-end !important;
justify-content: center !important;
}
.orbital-zone.bottom-right {
align-items: flex-end !important;
justify-content: flex-end !important;
}
.orbital-zone.center-left {
align-items: center !important;
justify-content: flex-start !important;
}
.orbital-zone.center {
align-items: center !important;
justify-content: center !important;
}
.orbital-zone.center-right {
align-items: center !important;
justify-content: flex-end !important;
}
14 changes: 14 additions & 0 deletions src/_progress.scss
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
/* Progress class */
o-progress {
display: flex;
justify-content: center;
align-items: center;
border-radius: 50%;
position: absolute;
pointer-events: none;
width: var(--o-diameter);
--o-width-factor: 1;
}
o-progress.rounded {
--o-linecap: round;
}
36 changes: 36 additions & 0 deletions src/_radial-layout.scss
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@

@use './variables' as *;

/* Orbit radial layout */

/* Orbits layout */
.orbit-0 {
--orbit-nth: 0;
border: 1px solid red;
}
@for $i from 1 through $max-orbits {
.orbit:nth-child(#{$i}), .orbit-#{$i} {
--orbit-nth: #{$i};
}
}

/* Satellites, sectors and vectors layout */

@for $i from 1 through $max-orbiters {
.satellite:nth-child(#{$i}), o-sector:nth-child(#{$i}), .vector:nth-child(#{$i}) {
--sat-number: #{$i};
}
}

@for $i from 1 through $max-orbiters {
.satellite:nth-child(#{$i}), o-sector:nth-child(#{$i}), .vector:nth-child(#{$i}) {
--sat-number: #{$i};
}
}

@for $i from 1 through $max-orbiters {
.orbit:has(> .satellite:nth-child(#{$i}), > o-sector:nth-child(#{$i}), > .vector:nth-child(#{$i})),
[class*='orbit-']:has(> .satellite:nth-child(#{$i}), > o-sector:nth-child(#{$i}), > .vector:nth-child(#{$i})) {
--angle: calc(var(--range) / #{$i});
}
}
30 changes: 30 additions & 0 deletions src/_satellite.scss
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
/* Satellite class */
.satellite {
width: 5px; /* Adjust satellite size */
height: 5px; /* Adjust satellite size */
background-color: yellow; /* Adjust satellite color */
border-radius: 50%; /* Make it a circle */
border: 1px solid black;
position: absolute;
display: flex;
justify-content: center;
align-items: center;
transform: translate(
calc(
var(--o-radius) / var(--ellipse-ratio-x) *
cos(var(--begin-at) + var(--angle) * var(--sat-number))
),
calc(
var(--o-radius) / var(--ellipse-ratio-y) *
sin(var(--begin-at) + var(--angle) * var(--sat-number))
)
);
}

.satellite > .orbital-zone {
--o-lenght: var(--o-diameter);
width: var(--o-lenght);
height: auto;
justify-content: center;
align-items: center;
}
42 changes: 42 additions & 0 deletions src/_sector.scss
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
@use './variables' as *;
/* Sector class */
o-sector {
container-name: sectors;
display: flex;
justify-content: center;
align-items: center;
border-radius: 50%;
position: absolute;
pointer-events: none;
width: 100%;
transform: rotate(calc((var(--begin-at) + var(--angle) * var(--sat-number))));
---o-width-factor: 1;
}

o-sector svg path {
display: none;
}
@container sectors style(--ellipse-ratio-x: 1) and style(--ellipse-ratio-y: 1) {
/* Conditional render sector if ratio equals 1*/
o-sector svg path {
display: block;
}
}


o-sector svg {
pointer-events: none;
overflow: visible;
}
o-sector svg > * {
pointer-events: stroke;
}
o-sector path {
stroke-opacity: 0.5;
border: 1px solid purple;
}

o-sector path:hover {
stroke: red;
cursor: pointer;
}
12 changes: 12 additions & 0 deletions src/_settings.scss
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
@use './variables' as *;
:root {
--max-orbits: #{$max-orbits};
--begin-at: 0deg;
--range: 360deg;
--ellipse-ratio-x: 1;
--ellipse-ratio-y: 1;
}

* {
box-sizing: border-box;
}
Loading

0 comments on commit 760af99

Please sign in to comment.