HTML preprocessors can make writing HTML more powerful or convenient. For instance, Markdown is designed to be easier to write and read for text documents and you could write a loop in Pug.
In CodePen, whatever you write in the HTML editor is what goes within the <body>
tags in a basic HTML5 template. So you don't have access to higher-up elements like the <html>
tag. If you want to add classes there that can affect the whole document, this is the place to do it.
In CodePen, whatever you write in the HTML editor is what goes within the <body>
tags in a basic HTML5 template. If you need things in the <head>
of the document, put that code here.
The resource you are linking to is using the 'http' protocol, which may not work when the browser is using https.
CSS preprocessors help make authoring CSS easier. All of them offer things like variables and mixins to provide convenient abstractions.
It's a common practice to apply CSS to a page that styles elements such that they are consistent across all browsers. We offer two of the most popular choices: normalize.css and a reset. Or, choose Neither and nothing will be applied.
To get the best cross-browser support, it is a common practice to apply vendor prefixes to CSS properties and values that require them to work. For instance -webkit-
or -moz-
.
We offer two popular choices: Autoprefixer (which processes your CSS server-side) and -prefix-free (which applies prefixes via a script, client-side).
Any URLs added here will be added as <link>
s in order, and before the CSS in the editor. You can use the CSS from another Pen by using its URL and the proper URL extension.
You can apply CSS to your Pen from any stylesheet on the web. Just put a URL to it here and we'll apply it, in the order you have them, before the CSS in the Pen itself.
You can also link to another Pen here (use the .css
URL Extension) and we'll pull the CSS from that Pen and include it. If it's using a matching preprocessor, use the appropriate URL Extension and we'll combine the code before preprocessing, so you can use the linked Pen as a true dependency.
JavaScript preprocessors can help make authoring JavaScript easier and more convenient.
Babel includes JSX processing.
Any URL's added here will be added as <script>
s in order, and run before the JavaScript in the editor. You can use the URL of any other Pen and it will include the JavaScript from that Pen.
You can apply a script from anywhere on the web to your Pen. Just put a URL to it here and we'll add it, in the order you have them, before the JavaScript in the Pen itself.
If the script you link to has the file extension of a preprocessor, we'll attempt to process it before applying.
You can also link to another Pen here, and we'll pull the JavaScript from that Pen and include it. If it's using a matching preprocessor, we'll combine the code before preprocessing, so you can use the linked Pen as a true dependency.
Search for and use JavaScript packages from npm here. By selecting a package, an import
statement will be added to the top of the JavaScript editor for this package.
Using packages here is powered by esm.sh, which makes packages from npm not only available on a CDN, but prepares them for native JavaScript ESM usage.
All packages are different, so refer to their docs for how they work.
If you're using React / ReactDOM, make sure to turn on Babel for the JSX processing.
If active, Pens will autosave every 30 seconds after being saved once.
If enabled, the preview panel updates automatically as you code. If disabled, use the "Run" button to update.
If enabled, your code will be formatted when you actively save your Pen. Note: your code becomes un-folded during formatting.
Visit your global Editor Settings.
.page.page-home(style="display:block")
.bg
.overlay
.panel.panel-time
.span.time 15:06
.span.date Monday, 27 Juny 2015
.panel.panel-weather
.location Budapest, Hungary
//.icon.wi.wi-day-sunny-overcast
img(src="http://ultraimg.com/images/KlfpUAu.png")
.span.temp 28
span.degree °C
.span.text Sunny
.panel.panel-calendar
ul
li
.time 8:00 - 9:00
.title Shopping
li
.time 10:00 - 12:00
.title Meet Tom
li
.time 18:00 - 20:00
.title Go to cinema
.panel.panel-tasks
ul
li.checked
.check
.title Milk
li
.check
.title Bread & cheese
li
.check
.title Beer & wine
li.other
.plus
.title ... and 15 other tasks
.panel.panel-functions
.icon.icon-weather(data-page="weather")
i.fa.fa-sun-o
span.title Weather
.icon.icon-calendar(data-page="calendar")
i.fa.fa-calendar
span.title Calendar
.icon.icon-map(data-page="map")
i.fa.fa-globe
span.title Map
.icon.icon-tasks(data-page="tasks")
i.fa.fa-tasks
span.title Tasks
.icon.icon-news(data-page="news")
i.fa.fa-rss
span.title News
.page.page-weather
.bg
.overlay
.panel.panel-now
.mainInfo
//.icon.wi.wi-day-sunny
img(src="http://ultraimg.com/images/KlfpUAu.png")
.temp
span.value 27
span.degree °C
span.separator /
span.value 19
span.degree °C
.row
.info
i.wi.wi-strong-wind
span.value 15 km/h
.info
i.wi.wi-wind-default._150-deg
span.value NW
.info
i.wi.wi-sprinkles
span.value 40 %
.panel.panel-today
.box
.title Morning
//.icon.wi.wi-day-rain
img(src="http://ultraimg.com/images/Paf07R1.png")
.temp
span.value 16
span.degree °C
.box
.title Afternoon
//.icon.wi.wi-day-rain
img(src="http://ultraimg.com/images/KlfpUAu.png")
.temp
span.value 26
span.degree °C
.box
.title Tonight
//.icon.wi.wi-day-rain
img(src="http://ultraimg.com/images/NDKiHOg.png")
.temp
span.value 19
span.degree °C
.panel.panel-location
.title
span Budapest
span Hungary
.icon.fa.fa-map-marker
.panel.panel-forecast
.box
.title Tue
//.icon.wi.wi-day-rain
img(src="http://ultraimg.com/images/bosikG0.png")
.temp
span.value 31
span.degree °C
span.separator /
span.value 23
span.degree °C
.box
.title Wed
img(src="http://ultraimg.com/images/KlfpUAu.png")
.temp
span.value 25
span.degree °C
span.separator /
span.value 20
span.degree °C
.box
.title Thu
img(src="http://ultraimg.com/images/t8VL5lw.png")
.temp
span.value 18
span.degree °C
span.separator /
span.value 12
span.degree °C
.box
.title Fri
img(src="http://ultraimg.com/images/t8VL5lw.png")
.temp
span.value 16
span.degree °C
span.separator /
span.value 9
span.degree °C
.box
.title Sat
img(src="http://ultraimg.com/images/Paf07R1.png")
.temp
span.value 20
span.degree °C
span.separator /
span.value 13
span.degree °C
.box
.title Sun
img(src="http://ultraimg.com/images/bosikG0.png")
.temp
span.value 26
span.degree °C
span.separator /
span.value 22
span.degree °C
.page.page-calendar
.bg
.overlay
.panel.panel-calendar.left
.header
.title Today
.date Juny 25, 2015
ul
li
.time 8:00 - 9:00
.title Shopping
li
.time 10:00 - 12:00
.title Meet Tom
li
.time 18:00 - 20:00
.title Go to cinema
li
.time 23:00 - 24:00
.title Drinking
.panel.panel-calendar.right
.header
.title Tomorrow
.date Juny 26, 2015
ul
li
.time 9:00 - 10:00
.title Meeting
li
.time 11:00 - 13:00
.title Go to bank
li
.time 16:00 - 17:00
.title Dinner
li
.time 22:00 - 24:00
.title Party
.page.page-map
.bg
.overlay
.title Traffic map
.map
.page.page-tasks
.bg
.overlay
.wrapper
.panel.panel-tasklist
.header
.title Shopping list (4)
.newItem
.text
i.fa.fa-plus
span.title Add new item
input(type="text", placeholder="Add new item")
ul
li.checked
.check
.title Milk
li
.check
.title Bread
li
.check
.title Cheese
li
.check
.title Beer
.panel.panel-tasklist
.header
.title To-do list (5)
.newItem
.text
i.fa.fa-plus
span.title Add new item
input(type="text", placeholder="Add new item")
ul
li
.check
.title Cleaning
li
.check
.title Washing
li
.check
.title Shopping
li.checked
.check
.title Pay bills
li
.check
.title Dusting
.panel.panel-tasklist
.header
.title Long-term tasks (3)
.newItem
.text
i.fa.fa-plus
span.title Add new item
input(type="text", placeholder="Add new item")
ul
li
.check
.title Prepare boiler
li
.check
.title Buy a sofa
li
.check
.title Car service
.page.page-news
.bg
.overlay
.panel.panel-newslist-big
ul
li
.image(style="background-image: url('http://cnet1.cbsistatic.com/hub/i/2012/10/15/1b4b10cd-fdb7-11e2-8c7c-d4ae52e62bcc/4669586ec99fd664fe4862edf2249436/Sonos_Connect_33190898_02_540x386.jpg');")
.source CNET
.time June 26, 2015 7:12 PM
.title What is FLAC? The high-def MP3 explained
.description CNET explains what FLAC is, as well as where to buy music in the FLAC format, and how to play it on your iPhone, computer, or MP3 player. In the late …
li
.image(style="background-image: url('https://cdn.flipboard.com/forbes.com/a174e8925fbf44563a38c7e763c91ed733f05a60/original.jpg');")
.source Forbes
.time June 26, 2015 6:01 PM
.title Here Are The Phones That Will Fit Your 'Fallout 4' Pip-Boy Edition
.description Imagine this scenario: You recently contributed $119 to a Kickstarter campaign for an upcoming mobile RPG from one of your most respected developers. Good news, the project was successfully funded! Now the developer chooses this point in time to tell you which mobile operating system the game will …
li
.image(style="background-image: url('http://cnet1.cbsistatic.com/hub/i/2012/10/15/1b4b10cd-fdb7-11e2-8c7c-d4ae52e62bcc/4669586ec99fd664fe4862edf2249436/Sonos_Connect_33190898_02_540x386.jpg');")
.source CNET
.time June 26, 2015 7:12 PM
.title What is FLAC? The high-def MP3 explained
.description CNET explains what FLAC is, as well as where to buy music in the FLAC format, and how to play it on your iPhone, computer, or MP3 player. In the late …
li
.image(style="background-image: url('https://cdn.flipboard.com/forbes.com/a174e8925fbf44563a38c7e763c91ed733f05a60/original.jpg');")
.source Forbes
.time June 26, 2015 6:01 PM
.title Here Are The Phones That Will Fit Your 'Fallout 4' Pip-Boy Edition
.description Imagine this scenario: You recently contributed $119 to a Kickstarter campaign for an upcoming mobile RPG from one of your most respected developers. Good news, the project was successfully funded! Now the developer chooses this point in time to tell you which mobile operating system the game will …
li
.image(style="background-image: url('http://cnet1.cbsistatic.com/hub/i/2012/10/15/1b4b10cd-fdb7-11e2-8c7c-d4ae52e62bcc/4669586ec99fd664fe4862edf2249436/Sonos_Connect_33190898_02_540x386.jpg');")
.source CNET
.time June 26, 2015 7:12 PM
.title What is FLAC? The high-def MP3 explained
.description CNET explains what FLAC is, as well as where to buy music in the FLAC format, and how to play it on your iPhone, computer, or MP3 player. In the late …
li
.image(style="background-image: url('https://cdn.flipboard.com/forbes.com/a174e8925fbf44563a38c7e763c91ed733f05a60/original.jpg');")
.source Forbes
.time June 26, 2015 6:01 PM
.title Here Are The Phones That Will Fit Your 'Fallout 4' Pip-Boy Edition
.description Imagine this scenario: You recently contributed $119 to a Kickstarter campaign for an upcoming mobile RPG from one of your most respected developers. Good news, the project was successfully funded! Now the developer chooses this point in time to tell you which mobile operating system the game will …
li
.image(style="background-image: url('http://cnet1.cbsistatic.com/hub/i/2012/10/15/1b4b10cd-fdb7-11e2-8c7c-d4ae52e62bcc/4669586ec99fd664fe4862edf2249436/Sonos_Connect_33190898_02_540x386.jpg');")
.source CNET
.time June 26, 2015 7:12 PM
.title What is FLAC? The high-def MP3 explained
.description CNET explains what FLAC is, as well as where to buy music in the FLAC format, and how to play it on your iPhone, computer, or MP3 player. In the late …
li
.image(style="background-image: url('https://cdn.flipboard.com/forbes.com/a174e8925fbf44563a38c7e763c91ed733f05a60/original.jpg');")
.source Forbes
.time June 26, 2015 6:01 PM
.title Here Are The Phones That Will Fit Your 'Fallout 4' Pip-Boy Edition
.description Imagine this scenario: You recently contributed $119 to a Kickstarter campaign for an upcoming mobile RPG from one of your most respected developers. Good news, the project was successfully funded! Now the developer chooses this point in time to tell you which mobile operating system the game will …
li
.image(style="background-image: url('http://cnet1.cbsistatic.com/hub/i/2012/10/15/1b4b10cd-fdb7-11e2-8c7c-d4ae52e62bcc/4669586ec99fd664fe4862edf2249436/Sonos_Connect_33190898_02_540x386.jpg');")
.source CNET
.time June 26, 2015 7:12 PM
.title What is FLAC? The high-def MP3 explained
.description CNET explains what FLAC is, as well as where to buy music in the FLAC format, and how to play it on your iPhone, computer, or MP3 player. In the late …
li
.image(style="background-image: url('https://cdn.flipboard.com/forbes.com/a174e8925fbf44563a38c7e763c91ed733f05a60/original.jpg');")
.source Forbes
.time June 26, 2015 6:01 PM
.title Here Are The Phones That Will Fit Your 'Fallout 4' Pip-Boy Edition
.description Imagine this scenario: You recently contributed $119 to a Kickstarter campaign for an upcoming mobile RPG from one of your most respected developers. Good news, the project was successfully funded! Now the developer chooses this point in time to tell you which mobile operating system the game will …
li
.image(style="background-image: url('http://cnet1.cbsistatic.com/hub/i/2012/10/15/1b4b10cd-fdb7-11e2-8c7c-d4ae52e62bcc/4669586ec99fd664fe4862edf2249436/Sonos_Connect_33190898_02_540x386.jpg');")
.source CNET
.time June 26, 2015 7:12 PM
.title What is FLAC? The high-def MP3 explained
.description CNET explains what FLAC is, as well as where to buy music in the FLAC format, and how to play it on your iPhone, computer, or MP3 player. In the late …
li
.image(style="background-image: url('https://cdn.flipboard.com/forbes.com/a174e8925fbf44563a38c7e763c91ed733f05a60/original.jpg');")
.source Forbes
.time June 26, 2015 6:01 PM
.title Here Are The Phones That Will Fit Your 'Fallout 4' Pip-Boy Edition
.description Imagine this scenario: You recently contributed $119 to a Kickstarter campaign for an upcoming mobile RPG from one of your most respected developers. Good news, the project was successfully funded! Now the developer chooses this point in time to tell you which mobile operating system the game will …
.panel.panel-newslist-small
ul
li
.source CNET
.image(style="background-image: url('http://cnet1.cbsistatic.com/hub/i/2012/10/15/1b4b10cd-fdb7-11e2-8c7c-d4ae52e62bcc/4669586ec99fd664fe4862edf2249436/Sonos_Connect_33190898_02_540x386.jpg');")
.title What is FLAC? The high-def MP3 explained
.description CNET explains what FLAC is, as well as where to buy music in the FLAC format, and how to play it on your iPhone, computer, or MP3 player. In the late …
.time June 26, 2015 7:12 PM
li
.source Forbes
.image(style="background-image: url('https://cdn.flipboard.com/forbes.com/a174e8925fbf44563a38c7e763c91ed733f05a60/original.jpg');")
.title Here Are The Phones That Will Fit Your 'Fallout 4' Pip-Boy Edition
.description Imagine this scenario: You recently contributed $119 to a Kickstarter campaign for an upcoming mobile RPG from one of your most respected developers. Good news, the project was successfully funded! Now the developer chooses this point in time to tell you which mobile operating system the game will …
.time June 26, 2015 6:01 PM
li
.source CNET
.image(style="background-image: url('http://cnet1.cbsistatic.com/hub/i/2012/10/15/1b4b10cd-fdb7-11e2-8c7c-d4ae52e62bcc/4669586ec99fd664fe4862edf2249436/Sonos_Connect_33190898_02_540x386.jpg');")
.title What is FLAC? The high-def MP3 explained
.description CNET explains what FLAC is, as well as where to buy music in the FLAC format, and how to play it on your iPhone, computer, or MP3 player. In the late …
.time June 26, 2015 7:12 PM
li
.source Forbes
.image(style="background-image: url('https://cdn.flipboard.com/forbes.com/a174e8925fbf44563a38c7e763c91ed733f05a60/original.jpg');")
.title Here Are The Phones That Will Fit Your 'Fallout 4' Pip-Boy Edition
.description Imagine this scenario: You recently contributed $119 to a Kickstarter campaign for an upcoming mobile RPG from one of your most respected developers. Good news, the project was successfully funded! Now the developer chooses this point in time to tell you which mobile operating system the game will …
.time June 26, 2015 6:01 PM
li
.source CNET
.image(style="background-image: url('http://cnet1.cbsistatic.com/hub/i/2012/10/15/1b4b10cd-fdb7-11e2-8c7c-d4ae52e62bcc/4669586ec99fd664fe4862edf2249436/Sonos_Connect_33190898_02_540x386.jpg');")
.title What is FLAC? The high-def MP3 explained
.description CNET explains what FLAC is, as well as where to buy music in the FLAC format, and how to play it on your iPhone, computer, or MP3 player. In the late …
.time June 26, 2015 7:12 PM
li
.source Forbes
.image(style="background-image: url('https://cdn.flipboard.com/forbes.com/a174e8925fbf44563a38c7e763c91ed733f05a60/original.jpg');")
.title Here Are The Phones That Will Fit Your 'Fallout 4' Pip-Boy Edition
.description Imagine this scenario: You recently contributed $119 to a Kickstarter campaign for an upcoming mobile RPG from one of your most respected developers. Good news, the project was successfully funded! Now the developer chooses this point in time to tell you which mobile operating system the game will …
.time June 26, 2015 6:01 PM
li
.source CNET
.image(style="background-image: url('http://cnet1.cbsistatic.com/hub/i/2012/10/15/1b4b10cd-fdb7-11e2-8c7c-d4ae52e62bcc/4669586ec99fd664fe4862edf2249436/Sonos_Connect_33190898_02_540x386.jpg');")
.title What is FLAC? The high-def MP3 explained
.description CNET explains what FLAC is, as well as where to buy music in the FLAC format, and how to play it on your iPhone, computer, or MP3 player. In the late …
.time June 26, 2015 7:12 PM
li
.source Forbes
.image(style="background-image: url('https://cdn.flipboard.com/forbes.com/a174e8925fbf44563a38c7e763c91ed733f05a60/original.jpg');")
.title Here Are The Phones That Will Fit Your 'Fallout 4' Pip-Boy Edition
.description Imagine this scenario: You recently contributed $119 to a Kickstarter campaign for an upcoming mobile RPG from one of your most respected developers. Good news, the project was successfully funded! Now the developer chooses this point in time to tell you which mobile operating system the game will …
.time June 26, 2015 6:01 PM
li
.source CNET
.image(style="background-image: url('http://cnet1.cbsistatic.com/hub/i/2012/10/15/1b4b10cd-fdb7-11e2-8c7c-d4ae52e62bcc/4669586ec99fd664fe4862edf2249436/Sonos_Connect_33190898_02_540x386.jpg');")
.title What is FLAC? The high-def MP3 explained
.description CNET explains what FLAC is, as well as where to buy music in the FLAC format, and how to play it on your iPhone, computer, or MP3 player. In the late …
.time June 26, 2015 7:12 PM
li
.source Forbes
.image(style="background-image: url('https://cdn.flipboard.com/forbes.com/a174e8925fbf44563a38c7e763c91ed733f05a60/original.jpg');")
.title Here Are The Phones That Will Fit Your 'Fallout 4' Pip-Boy Edition
.description Imagine this scenario: You recently contributed $119 to a Kickstarter campaign for an upcoming mobile RPG from one of your most respected developers. Good news, the project was successfully funded! Now the developer chooses this point in time to tell you which mobile operating system the game will …
.time June 26, 2015 6:01 PM
li
.source CNET
.image(style="background-image: url('http://cnet1.cbsistatic.com/hub/i/2012/10/15/1b4b10cd-fdb7-11e2-8c7c-d4ae52e62bcc/4669586ec99fd664fe4862edf2249436/Sonos_Connect_33190898_02_540x386.jpg');")
.title What is FLAC? The high-def MP3 explained
.description CNET explains what FLAC is, as well as where to buy music in the FLAC format, and how to play it on your iPhone, computer, or MP3 player. In the late …
.time June 26, 2015 7:12 PM
li
.source Forbes
.image(style="background-image: url('https://cdn.flipboard.com/forbes.com/a174e8925fbf44563a38c7e763c91ed733f05a60/original.jpg');")
.title Here Are The Phones That Will Fit Your 'Fallout 4' Pip-Boy Edition
.description Imagine this scenario: You recently contributed $119 to a Kickstarter campaign for an upcoming mobile RPG from one of your most respected developers. Good news, the project was successfully funded! Now the developer chooses this point in time to tell you which mobile operating system the game will …
.time June 26, 2015 6:01 PM
@import "compass";
@import url(https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,700,900|Dosis:300,400,600,700,800|Droid+Sans:400,700|Lato:300,400,700,900|PT+Sans:400,700|Ubuntu:300,400,500,700|Open+Sans:400,300,600,700|Roboto:400,300,500,700,900|Roboto+Condensed:400,300,700|Open+Sans+Condensed:300,700|Play:400,700|Maven+Pro:400,500,700,900&subset=latin,latin-ext);
$forestGreen: rgb(0, 255, 84);
$cityAqua: rgb(0, 233, 233);
$skyBlue: rgb(0, 181, 255);
$deepPurple: rgb(164, 49, 230);
$islandOrange: rgb(255, 49, 0);
$beachOrange: rgb(255, 97, 0);
$masterColor: $cityAqua;
$bg1: rgba($masterColor, 0.6);
$bg2: rgba($masterColor, 0.8);
$textColor: White;
$fontFamily: "Open Sans";
* {
@include box-sizing(border-box);
}
html {
background-color: #1d1f20;
font-size: 16px;
font-family: $fontFamily;
font-weight: 300;
color: White;
text-rendering: optimizeLegibility !important;
-webkit-font-smoothing: antialiased !important;
}
@mixin clearfix() {
&:before,
&:after {
content: "";
display: table;
}
&:after {
clear: both;
}
}
@mixin absolute($w: 100%, $h: 100%) {
position: absolute;
left: 0; right: 0; bottom: 0; top: 0;
width: $w;
height: $h;
margin: auto auto;
}
@mixin add-flex() {
@include display-flex();
align-items: center;
justify-content: space-around;
}
@mixin ellipsis() {
white-space: nowrap;
text-overflow: ellipsis;
}
@mixin scrollStyle($c) {
/* scrollbar design Chrome */
&::-webkit-scrollbar {
height: 10px;
width: 10px;
//background: #000;
}
&::-webkit-scrollbar-thumb {
border-radius: 10px;
background-color: $c;
border: 1px solid darken($c, 10%);
}
&::-webkit-scrollbar-corner {
background: $c;
display: none;
opacity: 0;
}
}
body {
overflow: hidden;
}
.page {
display: none;
@include absolute(800px,480px);
background: Black;
@include border-radius(6px);
@include box-shadow(1px 1px 10px rgba(Black, 0.8));
@include user-select(none);
overflow: hidden;
.bg {
@include absolute(800px,480px);
background-image: url('http://ultraimg.com/images/yarQDmk.jpg');
background-size: cover;
$blur: 0px;
-webkit-filter: blur($blur);
-moz-filter: blur($blur);
-o-filter: blur($blur);
-ms-filter: blur($blur);
filter: blur($blur);
} // .bg
.overlay {
@include absolute(800px,480px);
background-color: rgba($masterColor, 0.1);
}
} // .page
$panelRadius: 5px;
.panel {
//background-color: $bg1;
background-color: rgba(black, 0.4);
@include text-shadow(0 0 4px rgba(Black, 0.4));
}
$skew: 10deg;
.page-home {
.panel-time {
position: absolute;
top: 30px;
width: 380px;
@include border-radius(0px $panelRadius $panelRadius 0px);
.time {
font-size: 7.0rem;
line-height: 8.0rem;
text-align: center;
} // .time
.date {
background-color: $bg1;
font-size: 1.5rem;
line-height: 2.5rem;
text-align: center;
@include border-radius(0px 0px $panelRadius 0px);
} // .date
} // .panel-time
.panel-weather {
position: absolute;
top: 30px;
width: 380px;
right: 0px;
text-align: center;
cursor: pointer;
@include border-radius($panelRadius 0px 0px $panelRadius);
background-color: rgba(Black, 0.3);
.location {
background-color: $bg1;
font-size: 1.1rem;
line-height: 1.5rem;
@include border-radius($panelRadius 0px 0px 0px);
}
.icon {
display: inline-block;
font-size: 3.0rem;
line-height: 4.0rem;
margin-right: 40px;
}
img {
width: 150px;
margin-right: 50px;
}
.temp {
display: inline-block;
vertical-align: top;
font-size: 5.0rem;
line-height: 6.5rem;
font-weight: 400;
.degree {
font-size: 2rem;
line-height: 4rem;
vertical-align: top;
}
}
.text {
font-weight: 400;
font-size: 1.4rem;
line-height: 2.5rem;
}
} // .panel-weather
.panel-calendar {
position: absolute;
top: 220px;
width: 380px;
height: 120px;
overflow: hidden;
cursor: pointer;
background-color: initial;
ul {
padding: 0px 20px;
li {
padding: 0;
margin: 8px 0px;
background-color: rgba(Black, 0.5);
@include border-radius(10px);
.time, .title {
display: inline-block;
font-size: 1.0rem;
line-height: 1.2rem;
padding: 2px 6px;
} // .time, .title
.time {
width: 120px;
text-align: center;
font-weight: 300;
background-color: $bg1;
@include border-radius(4px 0 0 4px);
} // .time
} // li
} // ul
} // .panel-calendar
.panel-tasks {
position: absolute;
top: 210px;
right: 0px;
width: 300px;
height: 140px;
overflow: hidden;
cursor: pointer;
background-color: initial;
ul {
padding-right: 30px;
li {
padding: 0;
margin: 8px 0px;
background-color: rgba(Black, 0.5);
@include border-radius(10px);
.check, .title, .plus {
display: inline-block;
font-size: 1.0rem;
line-height: 20px;
vertical-align: middle;
} // .time, .title
.title {
padding: 2px 6px;
}
.check {
position: relative;
margin: 0px 0px 0px 2px;
width: 20px;
height: 20px;
border: 2px solid $bg1;
@include border-radius(20px);
} // .check
&.checked .check {
&:after {
content: '\f00c';
position: absolute;
font-family: FontAwesome;
font-size: 0.9rem;
top: -2px;
left: 1px;
}
} // .checked
.plus {
width: 20px;
height: 20px;
} // .plus
&.other .title {
font-style: italic;
color: darken($textColor, 20%);
font-size: 0.9rem;
} // .other
} // li
} // ul
} // .panel-tasks
.panel-functions {
position: absolute;
width: 100%;
bottom: 0px;
padding: 20px 0px;
@include add-flex();
.icon {
$p: 15px;
$border: 6px;
$size: 45px;
$w: $size + $p * 2 + $border * 2;
margin: 0px 20px;
font-size: $size;
width: $w;
height: $w;
padding: $p;
text-align: center;
cursor: pointer;
border: $border solid $bg1;
@include border-radius($w);
.title {
font-size: 1.0rem;
text-align: center;
text-transform: uppercase;
display: none;
} // .title
} // .icon
} // .panel-functions
} // .page-home
.page-weather {
.bg {
background-image: url('http://ultraimg.com/images/WA9FyMb.jpg');
} // .bg
.panel-now {
position: absolute;
top: 10px;
left: 20px;
width: 400px;
height: 200px;
@include border-radius($panelRadius);
.mainInfo {
text-align: center;
@include text-shadow(1px 1px 4px rgba(Black, 0.6));
.icon {
display: block;
font-size: 4.0rem;
line-height: 6.0rem;
}
img {
display: block;
margin: auto;
height: 120px;
padding-right: 20px;
}
.temp {
display: block;
font-size: 3.0rem;
line-height: 4.0rem;
margin-bottom: 6px;
margin-top: -10px;
.value {
font-weight: 600;
}
.separator {
margin: 0 3px;
opacity: 0.4;
}
.degree {
margin-left: 5px;
font-size: 1.5rem;
line-height: 2.5rem;
font-weight: 300;
vertical-align: top;
}
} // .temp
} // .mainInfo
.row {
@include add-flex();
.info {
flex: 1;
text-align: center;
i {
margin-right: 10px;
color: lighten($islandOrange, 15%);
}
.value {
font-weight: 600;
}
} // .info
} // .row
} // .panel-now
.panel-location {
position: absolute;
top: 10px;
right: 20px;
width: 200px;
height: 100px;
text-align: right;
@include text-shadow(1px 1px 4px rgba(Black, 0.9));
@include border-radius($panelRadius);
background-color: initial;
.icon {
display: inline-block;
text-align: center;
font-size: 3.0rem;
line-height: 4.0rem;
}
.title {
display: inline-block;
text-align: center;
font-size: 1.0rem;
line-height: 1.2rem;
margin-right: 10px;
span {
display: block;
}
}
} // .panel-location
.panel-today {
position: absolute;
top: 220px;
left: 20px;
width: 400px;
height: 100px;
background-color: rgba(black, 0.5);
@include border-radius($panelRadius);
@include add-flex();
justify-content: space-between;
.box {
flex: 1;
height: 100%;
border-right: 2px solid rgba(Black, 0.3);
.title {
background-color: rgba(Black, 0.2);
font-size: 0.9rem;
line-height: 1.3rem;
font-weight: 600;
text-align: center;
color: lighten($islandOrange, 15%);
@include text-shadow(1px 1px 3px rgba(Black, 0.6));
} // .title
.icon {
display: block;
font-size: 2.0rem;
line-height: 4.0rem;
font-weight: 400;
text-align: center;
@include text-shadow(1px 1px 5px rgba(Black, 0.9));
//color: lighten($masterColor, 35%);
} // .icon
img {
display: block;
height: 50px;
margin-left: 20px;
}
.temp {
font-size: 1.1rem;
line-height: 2.0rem;
font-weight: 300;
text-align: center;
.value {
font-weight: 600;
}
.degree {
margin-left: 2px;
font-size: 0.7rem;
line-height: 1.8rem;
font-weight: 300;
vertical-align: top;
}
} // .temp
} // .box
} // .panel-today
.panel-forecast {
position: absolute;
bottom: 0;
width: 100%;
height: 150px;
background-color: rgba(black, 0.5);
@include add-flex();
justify-content: space-between;
.box {
flex: 1;
height: 100%;
border-right: 2px solid rgba(Black, 0.3);
.title {
background-color: rgba(Black, 0.2);
font-size: 1.5rem;
line-height: 2.0rem;
font-weight: 600;
text-align: center;
text-transform: uppercase;
color: lighten($islandOrange, 15%);
@include text-shadow(1px 1px 4px rgba(Black, 0.6));
} // .title
.icon {
display: block;
font-size: 2.0rem;
line-height: 4.0rem;
font-weight: 400;
text-align: center;
@include text-shadow(1px 1px 5px rgba(Black, 0.9));
//color: lighten($masterColor, 35%);
} // .icon
img {
display: block;
height: 75px;
margin-left: 5px;
}
.temp {
font-size: 1.8rem;
line-height: 3.0rem;
font-weight: 300;
text-align: center;
.value {
font-weight: 600;
}
.separator {
margin: 0 3px;
opacity: 0.4;
}
.degree {
margin-left: 2px;
font-size: 0.8rem;
line-height: 2.5rem;
font-weight: 300;
vertical-align: top;
}
} // .temp
} // .box
} // .panel-forecast
} // .page-weather
.page-map {
.bg {
background-image: url('http://ultraimg.com/images/9u0jRT1.jpg');
$blur: 2px;
-webkit-filter: blur($blur);
-moz-filter: blur($blur);
-o-filter: blur($blur);
-ms-filter: blur($blur);
filter: blur($blur);
} // .bg
.overlay {
background-color: rgba($skyBlue, 0.25);
} // .overlay
.title {
position: absolute;
width: 90%;
top: 10px;
left: 0; right: 0;
margin: auto;
text-align: center;
font-size: 2.5rem;
line-height: 3.5rem;
background-color: rgba(Black, 0.2);
@include border-radius($panelRadius * 2);
font-family: "Open Sans";
font-weight: 400;
@include text-shadow(1px 1px 4px rgba(Black, 0.6));
}
.map {
@include absolute(90%, 80%);
margin-top: 10%;
@include border-radius(8px);
@include box-shadow(0 0 10px rgba(Black, 0.6));
}
} // .page-map
.page-tasks {
$c: $forestGreen;
.bg {
background-image: url('http://ultraimg.com/images/gAbeciZ.jpg');
$blur: 0px;
-webkit-filter: blur($blur);
-moz-filter: blur($blur);
-o-filter: blur($blur);
-ms-filter: blur($blur);
filter: blur($blur);
} // .bg
.overlay {
background-color: rgba(darken($c, 20%), 0.30);
} // .overlay
.wrapper {
position: absolute;
top: 20px;
left: 20px;
width: 760px;
height: 440px;
overflow: hidden;
}
.panel-tasklist {
display: inline-block;
vertical-align: top;
width: 30%;
margin: 0 1%;
background-color: rgba(black, 0.40);
@include border-radius($panelRadius);
.header {
text-align: center;
.title {
font-size: 1.2rem;
line-height: 2.0rem;
background-color: rgba($c, 0.7);
@include border-radius($panelRadius $panelRadius 0 0);
} // .title
} // .header
.newItem {
padding: 15px 15px 0px 15px;
height: 35px;
.text {
cursor: pointer;
.title {
display: inline-block;
//font-style: italic;
color: darken($textColor, 20%);
font-size: 0.9rem;
}
i {
width: 20px;
height: 20px;
margin-right: 5px;
text-align: center;
color: darken($textColor, 20%);
line-height: 20px;
vertical-align: middle;
}
} // .text
input {
display: none;
width: 100%;
padding: 2px 6px;
background-color: darken($c, 30%);
border: 1px solid darken($c, 20%);
@include border-radius($panelRadius);
font-family: $fontFamily;
color: $textColor;
} // input
} // .newItem
ul {
height: 370px;
padding: 10px 10px;
overflow: auto;
@include scrollStyle(darken($c, 20%));
li {
padding: 0;
margin: 8px 0px;
@include border-radius(10px);
cursor: pointer;
.check, .title, .plus {
display: inline-block;
font-size: 1.0rem;
line-height: 20px;
vertical-align: top;
} // .check, .title, .plus
.check {
position: relative;
margin: 0px 0px 0px 2px;
width: 20px;
height: 20px;
border: 2px solid $c;
@include border-radius(20px);
} // .check
.title {
width: 170px;
padding: 2px 6px;
}
&.checked {
.check:after {
content: '\f00c';
position: absolute;
font-family: FontAwesome;
font-size: 0.9rem;
top: -2px;
left: 1px;
} // .check after
.title {
font-style: italic;
text-decoration: line-through;
color: darken($textColor, 30%);
} // .title
} // .checked
.plus {
width: 20px;
height: 20px;
} // .plus
} // li
} // ul
&.right {
left: auto;
right: 20px;
}
} // .panel-tasklist
} // .page-tasks
.page-calendar {
$c: $cityAqua;
.bg {
background-image: url('http://ultraimg.com/images/6XirZxd.jpg');
$blur: 0px;
-webkit-filter: blur($blur);
-moz-filter: blur($blur);
-o-filter: blur($blur);
-ms-filter: blur($blur);
filter: blur($blur);
} // .bg
.overlay {
background-color: rgba($c, 0.20);
} // .overlay
.panel-calendar {
position: absolute;
top: 20px;
left: 20px;
width: 360px;
height: 440px;
overflow: hidden;
background-color: rgba(black, 0.55);
@include border-radius($panelRadius);
.header {
text-align: center;
.title {
font-size: 1.5rem;
line-height: 2.0rem;
background-color: rgba($c, 0.8);
} // .title
.date {
font-size: 1.0rem;
line-height: 1.5rem;
background-color: rgba($c, 0.6);
} // .date
} // .header
ul {
height: 380px;
overflow: auto;
@include scrollStyle(darken($c, 10%));
padding: 10px 15px 10px 10px;
li {
padding: 8px 0px;
border-bottom: 1px solid rgba($c, 0.3);
.time, .title {
display: inline-block;
font-size: 0.9rem;
line-height: 1.0rem;
padding: 2px 6px;
} // .time, .title
.time {
width: 100px;
text-align: center;
font-weight: 300;
vertical-align: top;
//background-color: $c;
//@include border-radius(4px 0 0 4px);
} // .time
.title {
width: 220px;
vertical-align: top;
//@include ellipsis();
}
} // li
} // ul
&.right {
left: auto;
right: 20px;
}
} // .panel-calendar
} // .page-calendar
.page-news {
$c: $skyBlue;
.bg {
background-image: url('http://ultraimg.com/images/NRcVB9W.jpg');
$blur: 0px;
-webkit-filter: blur($blur);
-moz-filter: blur($blur);
-o-filter: blur($blur);
-ms-filter: blur($blur);
filter: blur($blur);
} // .bg
.overlay {
background-color: rgba($c, 0.20);
} // .overlay
.panel-newslist-big {
position: absolute;
top: 10px;
left: 10px;
width: 380px;
height: 460px;
background-color: rgba(black, 0.7);
@include border-radius($panelRadius);
padding: 10px;
ul {
white-space: nowrap;
overflow: hidden;
}
li {
display: inline-block;
white-space: normal;
vertical-align: top;
margin-right: 10px;
@include text-shadow(0 0 6px rgba(Black, 0.8));
.image {
position: relative;
width: 360px;
height: 200px;
background-size: cover;
@include border-radius($panelRadius);
overflow: hidden;
margin-top: 10px;
font-size: 0.8rem;
.source {
position: absolute;
padding: 4px 8px;
background-color: rgba($c, 0.8);
font-weight: 400;
} // .source
.time {
position: absolute;
padding: 4px 8px;
background-color: rgba($c, 0.8);
bottom: 0px;
left: 0px;
} // .time
} // .image
.title {
font-size: 1.6rem;
line-height: 1.8rem;
margin: 6px 0px;
} // .title
.description {
margin-top: 10px;
font-size: 1.0rem;
line-height: 1.1rem;
font-weight: 400;
} // .description
} // li
} // .panel-newslist-big
.panel-newslist-small {
position: absolute;
top: 10px;
right: 10px;
width: 380px;
height: 460px;
overflow: auto;
@include scrollStyle(darken($c, 10%));
background-color: rgba(black, 0.7);
@include border-radius($panelRadius);
padding: 10px;
li {
border-bottom: 1px solid lighten(Black, 10%);
margin-bottom: 10px;
padding-bottom: 10px;
@include text-shadow(0 0 6px rgba(Black, 0.8));
.source {
padding: 4px 0px;
color: darken($textColor, 30%);
font-size: 0.8rem;
font-weight: 400;
} // .source
.image {
float: right;
width: 100px;
height: 80px;
margin-left: 10px;
background-size: cover;
@include border-radius($panelRadius);
margin-top: 10px;
} // .image
.title {
font-size: 1.2rem;
line-height: 1.4rem;
font-weight: 700;
margin: 6px 0px;
color: lighten($c, 20%);
} // .title
.description {
margin: 10px 0px;
font-size: 1.0rem;
line-height: 1.2rem;
font-weight: 400;
} // .description
.time {
padding: 4px 0px;
color: darken($textColor, 30%);
font-size: 0.6rem;
font-weight: 300;
} // .time
} // li
} // .panel-newslist-small
} // .page-news
/* scrollbar design IE */
body {
scrollbar-track-color: rgba(Black, 0.6);
scrollbar-face-color: rgba(Black, 0.6);
}
###
Home Portal App - Design concent
Designed to Raspberry Pi 2
Note: you can switch back to home if you slide to right the page
For more information follow me on Twitter @Icebobcsi
https://twitter.com/Icebobcsi
Icons: http://fontawesome.io/
Animation: https://greensock.com/gsap
Weather icons: http://vclouds.deviantart.com/art/VClouds-Weather-Icons-179152045
Home screen inspired by: https://www.behance.net/gallery/20006383/PORTAL-Inspire-Greatness
###
mapLoaded = false
showPage = (pageName, cb) ->
$page = $(".page.page-" + pageName)
$prevPage = $(".page:visible");
if $prevPage.attr("class") is $page.attr("class")
return $page
# console.log("Show page " + pageName);
tl = new TimelineLite
paused: true,
onComplete: ->
if not mapLoaded and pageName is "map"
showMap()
mapLoaded = true
cb() if cb
if $prevPage.length > 0
# Slide out old
tl.to $prevPage, 0.5,
x: 800
ease: Power3.easeIn
clearProps:"scale"
onComplete: -> $prevPage.hide()
tl.from $page, 0.5,
scale: 0.6
delay: 0.2
ease: Power3.easeOut
onStart: -> $page.show()
# Animate home page
if pageName is "home"
tl.from ".page-home .panel-time", 0.6,
x: -400
ease: Power3.easeOut
tl.from ".page-home .panel-weather", 0.6,
x: "+=400"
ease: Power3.easeOut
, '-=0.3'
tl.staggerFrom ".page-home .panel-functions .icon", 1.5,
y: 150
clearProps: "opacity, scale"
ease: Elastic.easeOut
, 0.2, "-=0.4"
tl.staggerFrom ".page-home .panel-calendar li", 1.5,
x: -400
ease: Power3.easeOut
, 0.2, "-=2"
tl.staggerFrom ".page-home .panel-tasks li", 1.5,
x: 400
ease: Power3.easeOut
, 0.2, "-=1.8"
# Animate weather page
if pageName is "weather"
tl.from ".page-weather .panel-now", 0.6,
x: -500
ease: Power3.easeOut
tl.from ".page-weather .panel-today", 0.6,
x: -500
ease: Power3.easeOut
, '-=0.2'
tl.from ".page-weather .panel-location", 0.4,
x: "+=400"
ease: Power3.easeOut
, '-=0.5'
tl.staggerFrom ".page-weather .panel-forecast .box", 1.2,
y: 150
delay: 0.5
ease: Elastic.easeOut
, 0.1, "-=0.5"
# Animate calendar page
if pageName is "calendar"
tl.staggerFrom ".page-calendar .panel-calendar", 1.0,
y: -150
autoAlpha: 0
ease: Power3.easeOut
, 0.3
tl.staggerFrom ".page-calendar .panel-calendar li", 1.0,
y: 150
autoAlpha: 0
ease: Power3.easeOut
, 0.1, "-=0.6"
# Animate calendar page
if pageName is "tasks"
tl.staggerFrom ".page-tasks .panel-tasklist", 1.0,
y: -150
autoAlpha: 0
ease: Power3.easeOut
, 0.3, "-=0.2"
tl.staggerFrom ".page-tasks .panel-tasklist li", 1.0,
y: 150
autoAlpha: 0
ease: Power3.easeOut
, 0.1, "-=0.8"
# Play
tl.play()
return $page
$ ->
# $page = showPage "home"
# Gestures control
$('.page').each (i, page) ->
if $(page).hasClass "page-home" then return
mc = new Hammer page,
preventDefault: true
type = "pan"
mc.get(type).set({ direction: Hammer.DIRECTION_HORIZONTAL, threshold: 10 });
mc.on type + 'right', (ev) ->
mc.get(type).set({ enable: false });
console.log(ev)
showPage "home", ->
mc.get(type).set({ enable: true });
# Click handler for home buttons
$(".page-home .panel-functions .icon").on "click", ->
TweenLite.to $(this), 0.5,
scale: 2.0
clearProps: "opacity, scale"
opacity: 0
showPage $(this).attr('data-page')
$(".page-home .panel-weather").on "click", ->
showPage "weather"
$(".page-home .panel-tasks").on "click", ->
showPage "tasks"
$(".page-home .panel-tasks li .check").on "click", (e)->
e.preventDefault()
e.stopPropagation()
$(this).closest("li").toggleClass "checked"
$(".page-home .panel-calendar").on "click", ->
showPage "calendar"
# Task events
$(".page-tasks .panel-tasklist li").on "click", (e)->
e.preventDefault()
e.stopPropagation()
$(this).toggleClass "checked"
$(".page-tasks .newItem .text").on "click", (e)->
div = $(e.target).closest(".newItem")
div.find(".text").hide()
div.find("input").val('').show().focus()
$(".page-tasks .newItem input").on "keypress", (e)->
if e.keyCode is 13
value = $(e.target).val()
div = $(e.target).closest(".newItem")
div.find(".text").show()
div.find("input").hide()
ul = div.parent().find("ul");
newLI = $("<li/>").append([
$("<div/>").addClass("check"),
$("<div/>").addClass("title").text(value)
])
ul.prepend newLI
TweenMax.from newLI, 1.2,
y: -50
ease: Elastic.easeOut
$(".page-tasks .newItem input").on "blur", (e)->
div = $(e.target).parent()
div.find(".text").show()
div.find("input").hide()
# News scrolling
stopBigNews = false
$(".page-news .panel-newslist-big").on("mouseenter", ->
stopBigNews = true
).on("mouseleave", ->
stopBigNews = false
)
bigIndex = 1
setInterval ->
if stopBigNews then return
TweenLite.to(".page-news .panel-newslist-big ul", 1.5, {scrollTo:{x: bigIndex * (370 + 4)}, ease:Power2.easeInOut}); # 4 -> 0.25em margin cause of inline-block
bigIndex++
if bigIndex >= $(".page-news .panel-newslist-big li").length then bigIndex = 0
, 4000
stopSmallNews = false
$(".page-news .panel-newslist-small").on("mouseenter", ->
stopSmallNews = true
).on("mouseleave", ->
stopSmallNews = false
)
smallIndex = 1
setInterval ->
if stopSmallNews then return
li = $(".page-news .panel-newslist-small li:eq(#{smallIndex})")
top = li.offset().top
top0 = $(".page-news .panel-newslist-small li:eq(0)").offset().top
TweenLite.to(".page-news .panel-newslist-small", 1.5, {scrollTo:{y: top - top0}, ease:Power2.easeInOut});
smallIndex++
if smallIndex >= $(".page-news .panel-newslist-small li").length then smallIndex = 0
, 3000
# Show traffic map
showMap = ->
mapOptions =
center:
lat: 47.480865
lng: 19.060265
zoom: 12
# Cobalt Theme
styles: [
featureType: 'all',
elementType: 'all',
stylers: [
{ 'invert_lightness': false },
{ 'saturation': 20 },
{ 'lightness': 10 },
{ 'gamma': 0.5 },
{ 'hue': '#90C2DC' }
]
,
featureType: 'poi',
elementType: 'labels',
stylers: [
{ 'visibility': 'off' }
]
]
map = new google.maps.Map $(".page-map .map").get(0), mapOptions
trafficLayer = new google.maps.TrafficLayer()
trafficLayer.setMap map
Also see: Tab Triggers