Elements with .satellite
are placed along an .orbit
or .orbit-*
path serving as content place and/or to nest .orbits
using .gravity-spot
. By default, up to 60 satellites can be placed in an orbit.
Look and feel
Satellites can be customized by adding CSS border and background properties.
<div class="bigbang">
<div class="gravity-spot">
<div class="orbit-5">
<div class="satellite one"></div>
<div class="satellite two"></div>
<div class="satellite three"></div>
<div class="satellite four"></div>
<div class="satellite five"></div>
</div>
</div>
</div>
.satellite {
background-color: var(--o-indigo);
border: none;
}
.one {
background-color: var(--o-orange);
border: none;
}
.two {
background: radial-gradient(circle, rgba(246,246,246,1) 4%, rgba(52,249,67,1) 28%, rgba(0,0,0,1) 82%, rgba(0,0,0,1) 96%);
border: none;
}
.three {
background-color: var(--o-blue-lighter);
border: 2px solid var(--o-blue);
}
.four {
background-color: transparent;
border: 2px dashed var(--o-indigo);
}
.five {
background-color: var(--o-pink);
}
< div class = "gravity-spot" >
< div class = "satellite one" ></ div >
< div class = "satellite two" ></ div >
< div class = "satellite three" ></ div >
< div class = "satellite four" ></ div >
< div class = "satellite five" ></ div >
background-color : var ( --o-indigo );
background-color : var ( --o-orange );
background : radial-gradient ( circle , rgba ( 246 , 246 , 246 , 1 ) 4 % , rgba ( 52 , 249 , 67 , 1 ) 28 % , rgba ( 0 , 0 , 0 , 1 ) 82 % , rgba ( 0 , 0 , 0 , 1 ) 96 % );
background-color : var ( --o-blue-lighter );
border : 2 px solid var ( --o-blue );
background-color : transparent ;
border : 2 px dashed var ( --o-indigo );
background-color : var ( --o-pink );
In addition, a few set of CSS shapes utilities are provided (.circle
, .box
, .rounded-box
). Nevertheless, users can set any shapes using svg, images, etc.
<div class="bigbang">
<div class="gravity-spot">
<div class="orbit-5">
<div class="satellite"></div>
<div class="satellite"></div>
<div class="satellite box"></div>
<div class="satellite box"></div>
<div class="satellite rounded-box"></div>
<div class="satellite rounded-box"></div>
</div>
</div>
</div>
.satellite {
background-color: var(--o-indigo);
border: none;
}
.box {
background-color: var(--o-orange);
border: none;
}
.rounded-box {
background-color: var(--o-green);
border: none;
}
< div class = "gravity-spot" >
< div class = "satellite" ></ div >
< div class = "satellite" ></ div >
< div class = "satellite box" ></ div >
< div class = "satellite box" ></ div >
< div class = "satellite rounded-box" ></ div >
< div class = "satellite rounded-box" ></ div >
background-color : var ( --o-indigo );
background-color : var ( --o-orange );
background-color : var ( --o-green );
Adjust Satellite size
Each .satellite
has one orbit space size, but it can be finely adjusted using the CSS class utility .shrink-10
to .shrink-90
, allowing the satellite to shrink by a specified percentage.
<div class="bigbang">
<div class="gravity-spot">
<div class="orbit-5">
<div class="satellite "></div>
<div class="satellite shrink-30"></div>
<div class="satellite shrink-60"></div>
<div class="satellite shrink-90"></div>
</div>
</div>
</div>
.satellite {
border: none;
}
.orbit-5 {
border: 1px dashed var(--o-cyan);
}
.orbit-5 > .satellite {
background-color: var(--o-pink)
}
< div class = "gravity-spot" >
< div class = "satellite " ></ div >
< div class = "satellite shrink-30" ></ div >
< div class = "satellite shrink-60" ></ div >
< div class = "satellite shrink-90" ></ div >
border : 1 px dashed var ( --o-cyan );
background-color : var ( --o-pink )
On opposite way, the CSS class utility .grow-0x
to .grow-12x
, allowing the satellite to expand by a multiple of .orbit
size. It is possible to use decimal fractions. For example, .grow-0.1x
, .grow-10.7x
, etc.
<div class="bigbang">
<div class="gravity-spot">
<div class="orbit-5">
<div class="satellite grow-0.5x "></div>
<div class="satellite grow-2x"></div>
<div class="satellite grow-3x"></div>
<div class="satellite grow-3.5x"></div>
</div>
</div>
</div>
.satellite {
border: none;
}
.orbit-5 {
border: 1px dashed var(--o-cyan);
}
.orbit-5 > .satellite {
background-color: var(--o-pink)
}
< div class = "gravity-spot" >
< div class = "satellite grow-0.5x " ></ div >
< div class = "satellite grow-2x" ></ div >
< div class = "satellite grow-3x" ></ div >
< div class = "satellite grow-3.5x" ></ div >
border : 1 px dashed var ( --o-cyan );
background-color : var ( --o-pink )
Using satellites for nesting orbits
Satellites allow nest orbits
to created complex radial designs. See orbit
secction for more information.
<div class="bigbang">
<div class="gravity-spot">
<div class="orbit-4">
<div class="satellite">
<div class="gravity-spot">
<div class="orbit"></div>
<div class="orbit"></div>
</div>
</div>
</div>
</div>
</div>
.orbit, [class*='orbit-']{
border-color: var(--o-cyan)
}
.satellite {
border: none;
background-color: var(--o-cyan)
}
< div class = "gravity-spot" >
< div class = "gravity-spot" >
< div class = "orbit" ></ div >
< div class = "orbit" ></ div >
.orbit , [ class *= 'orbit-' ]{
border-color : var ( --o-cyan )
background-color : var ( --o-cyan )
Adjusting radial layout
Arbitrary satellite angle.
.angle-*
: Set starting point angle from 0 to 360 degrees, overrriding automatic radial arragement.
<div class="bigbang">
<div class="gravity-spot">
<div class="orbit-5">
<div class="satellite angle-315"></div>
</div>
</div>
</div>
.satellite {
border: none;
}
.orbit-5 {
border: 1px dashed var(--o-cyan);
}
.orbit-5 > .satellite {
background-color: var(--o-cyan)
}
< div class = "gravity-spot" >
< div class = "satellite angle-315" ></ div >
border : 1 px dashed var ( --o-cyan );
background-color : var ( --o-cyan )
Sync rotation
.sync-rotation
informs satellites to follow orbital path.
<div class="wrapper">
<div class="bigbang">
<div class="gravity-spot">
<div class="orbit-5">
<div class="satellite">🔻</div>
<div class="satellite">🔻</div>
<div class="satellite">🔻</div>
<div class="satellite">🔻</div>
</div>
</div>
</div>
</div>
<div class="wrapper">
<div class="bigbang">
<div class="gravity-spot">
<div class="orbit-5">
<div class="satellite sync-rotation">🔻</div>
<div class="satellite sync-rotation">🔻</div>
<div class="satellite sync-rotation">🔻</div>
<div class="satellite sync-rotation">🔻</div>
</div>
</div>
</div>
</div>
.wrapper {
border: 1px dotted var(--o-purple);
height: 180px;
width: 180px;
float: left;
overflow: hidden;
margin: 5px;
}
.gravity-spot {
--o-force: 200px !important;
}
.satellite {
border: none;
}
.orbit-5 {
border: 1px dashed var(--o-cyan);
}
< div class = "gravity-spot" >
< div class = "satellite" >🔻</ div >
< div class = "satellite" >🔻</ div >
< div class = "satellite" >🔻</ div >
< div class = "satellite" >🔻</ div >
< div class = "gravity-spot" >
< div class = "satellite sync-rotation" >🔻</ div >
< div class = "satellite sync-rotation" >🔻</ div >
< div class = "satellite sync-rotation" >🔻</ div >
< div class = "satellite sync-rotation" >🔻</ div >
border : 1 px dotted var ( --o-purple );
--o-force : 200 px !important ;
border : 1 px dashed var ( --o-cyan );
Relative satellite orbital position
By default, .satellite
is positioned in the middle of orbit path. To change that, there some CSS utilities:
.inner-orbit
: To place an.satellite
just below its orbit.
.outer-orbit
: To place .satellite
just above its orbit.
.quarter-inner-orbit
: To place .satellite
a 25% into its orbit.
.quarter-outer-orbit
: To place .satellite
a 25% outer its orbit.
<div class="bigbang">
<div class="gravity-spot">
<div class="orbit-5">
<div class="satellite grow-1x outer-orbit "></div>
<div class="satellite grow-1x quarter-outer-orbit"></div>
<div class="satellite grow-1x quarter-inner-orbit"></div>
<div class="satellite grow-1x inner-orbit"></div>
</div>
</div>
</div>
.wrapper {
border: 1px dotted var(--o-purple);
height: 250px;
width: 250px;
float: left;
overflow: hidden;
margin: 5px;
}
.satellite {
border: none;
background-color: var(--o-pink)
}
.orbit-5 {
border: 1px dashed var(--o-cyan);
}
< div class = "gravity-spot" >
< div class = "satellite grow-1x outer-orbit " ></ div >
< div class = "satellite grow-1x quarter-outer-orbit" ></ div >
< div class = "satellite grow-1x quarter-inner-orbit" ></ div >
< div class = "satellite grow-1x inner-orbit" ></ div >
border : 1 px dotted var ( --o-purple );
background-color : var ( --o-pink )
border : 1 px dashed var ( --o-cyan );
Add content to satellites
Satellites are suitable to render different content.
<div class="bigbang">
<div class="gravity-spot">
<div class="orbit-5">
<div class="satellite grow-1x">Add</div>
<div class="satellite grow-1x">text</div>
<div class="satellite grow-1.8x">content</div>
</div>
</div>
</div>
.wrapper {
border: 1px dotted var(--o-purple);
height: 250px;
width: 250px;
float: left;
overflow: hidden;
margin: 5px;
}
.satellite {
border: none;
background-color: var(--o-pink);
color: white;
}
.orbit-5 {
border: 1px dashed var(--o-cyan);
}
< div class = "gravity-spot" >
< div class = "satellite grow-1x" >Add</ div >
< div class = "satellite grow-1x" >text</ div >
< div class = "satellite grow-1.8x" >content</ div >
border : 1 px dotted var ( --o-purple );
background-color : var ( --o-pink );
border : 1 px dashed var ( --o-cyan );
With .capsule
If other content than characters is used, it is desirable to use .capsule
element inside a .satellite
. See capsule
reference on documentation .
<div class="bigbang">
<div class="gravity-spot">
<div class="orbit-5">
<div class="satellite grow-2x rounded-box">
<div class="capsule">
<span style="color: var(--o-blue); font-size:13px; ">
Add html tags
</span>
</div>
</div>
<div class="satellite grow-2x">
<div class="capsule ">
<img src="/orbit-docs/favicon.svg" width="100"/>
</div>
</div>
<div class="satellite sync-rotation">
<div class="capsule title flip">
Inside capsule you can put any content
</div>
</div>
</div>
</div>
</div>
.wrapper {
border: 1px dotted var(--o-purple);
height: 250px;
width: 250px;
float: left;
overflow: hidden;
margin: 5px;
}
.satellite {
border: none;
background-color: var(--o-blue-lighter)
}
.satellite:last-child {
background-color: transparent
}
.title {
width: 150px;
border: 1px solid var(--o-green);
color: var(--o-green-dark);
background-color: var(--o-green-lighter);
}
.orbit-5 {
border: 1px dashed var(--o-cyan);
}
< div class = "gravity-spot" >
< div class = "satellite grow-2x rounded-box" >
< span style = "color: var(--o-blue); font-size:13px; " >
< div class = "satellite grow-2x" >
< img src = "/orbit-docs/favicon.svg" width = "100" />
< div class = "satellite sync-rotation" >
< div class = "capsule title flip" >
Inside capsule you can put any content
border : 1 px dotted var ( --o-purple );
background-color : var ( --o-blue-lighter )
background-color : transparent
border : 1 px solid var ( --o-green );
color : var ( --o-green-dark );
background-color : var ( --o-green-lighter );
border : 1 px dashed var ( --o-cyan );