diff --git a/01 - JavaScript Drum Kit/index-START.html b/01 - JavaScript Drum Kit/index-START.html
index 4070d32767..4ad13c9c9f 100644
--- a/01 - JavaScript Drum Kit/index-START.html
+++ b/01 - JavaScript Drum Kit/index-START.html
@@ -1,65 +1,64 @@
-
- JS Drum Kit
-
+
+ JS Drum Kit
+
+
+
+
+ A
+ clap
+
+
+ S
+ hihat
+
+
+ D
+ kick
+
+
+ F
+ openhat
+
+
+ G
+ boom
+
+
+ H
+ ride
+
+
+ J
+ snare
+
+
+ K
+ tom
+
+
+ L
+ tink
+
+
+
-
-
- A
- clap
-
-
- S
- hihat
-
-
- D
- kick
-
-
- F
- openhat
-
-
- G
- boom
-
-
- H
- ride
-
-
- J
- snare
-
-
- K
- tom
-
-
- L
- tink
-
-
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
+
diff --git a/01 - JavaScript Drum Kit/scripts.js b/01 - JavaScript Drum Kit/scripts.js
new file mode 100644
index 0000000000..830a6eb336
--- /dev/null
+++ b/01 - JavaScript Drum Kit/scripts.js
@@ -0,0 +1,28 @@
+/********************************************
+ * Call functions on Window Event Listener
+********************************************/
+function playSound(e) {
+ const audio = document.querySelector(`audio[data-key="${e.keyCode}"]`);
+ const key = document.querySelector(`.key[data-key="${e.keyCode}"]`);
+
+ // stop the function from running all together
+ if (!audio) return;
+
+ // Rewinds audio file to start
+ audio.currentTime = 0;
+
+ // Plays audio file
+ audio.play();
+ key.classList.add('playing');
+}
+
+function removeTransition(e) {
+ // skip if it's not a transform
+ if(e.propertyName !== 'transform') return;
+ this.classList.remove('playing');
+}
+
+const keys = document.querySelectorAll('.key');
+keys.forEach(key => key.addEventListener('transitionend', removeTransition));
+
+window.addEventListener('keydown', playSound);
\ No newline at end of file
diff --git a/01 - JavaScript Drum Kit/style.css b/01 - JavaScript Drum Kit/style.css
index 0673a8752a..42b7ab3ae3 100644
--- a/01 - JavaScript Drum Kit/style.css
+++ b/01 - JavaScript Drum Kit/style.css
@@ -49,3 +49,14 @@ kbd {
letter-spacing: .1rem;
color: #ffc600;
}
+
+.keywrap {
+ display: flex;
+ justify-content: center;
+}
+
+@media (max-width: 950px) {
+ .keywrap {
+ flex-wrap: wrap;
+ }
+}
diff --git a/02 - JS and CSS Clock/index-START.html b/02 - JS and CSS Clock/index-START.html
index 7cbf5f6ba6..99da02af8d 100644
--- a/02 - JS and CSS Clock/index-START.html
+++ b/02 - JS and CSS Clock/index-START.html
@@ -1,74 +1,20 @@
-
- JS + CSS Clock
+
+ JS + CSS Clock
+
+
-
-
-
-
-
-
+
diff --git a/02 - JS and CSS Clock/scripts.js b/02 - JS and CSS Clock/scripts.js
new file mode 100644
index 0000000000..3c40c35424
--- /dev/null
+++ b/02 - JS and CSS Clock/scripts.js
@@ -0,0 +1,27 @@
+/********************************************
+ * Call functions on Window Event Listener
+********************************************/
+const secondHand = document.querySelector('.second-hand');
+const minsHand = document.querySelector('.min-hand');
+const hourHand = document.querySelector('.hour-hand');
+
+
+function setDate() {
+ const now = new Date();
+ const seconds = now.getSeconds();
+ const secondsDegrees = ((seconds / 60) * 360) + 90;
+ secondHand.style.transform = `rotate(${secondsDegrees}deg)`;
+ // console.log(seconds);
+
+ const mins = now.getMinutes();
+ const minsDegrees = ((mins / 60) * 360) + 90;
+ minsHand.style.transform = `rotate(${minsDegrees}deg)`;
+ // console.log(minutes);
+
+ const hours = now.getHours();
+ const hoursDegrees = ((hours / 12) * 360) + 90;
+ hourHand.style.transform = `rotate(${hoursDegrees}deg)`;
+ // console.log(hours);
+
+}
+setInterval(setDate, 1000);
diff --git a/02 - JS and CSS Clock/style.css b/02 - JS and CSS Clock/style.css
new file mode 100644
index 0000000000..08e9da8704
--- /dev/null
+++ b/02 - JS and CSS Clock/style.css
@@ -0,0 +1,50 @@
+html {
+ background: #018DED url(http://unsplash.it/1500/1000?image=881&blur=50);
+ background-size: cover;
+ font-family: 'helvetica neue';
+ text-align: center;
+ font-size: 10px;
+}
+
+body {
+ margin: 0;
+ font-size: 2rem;
+ display: flex;
+ flex: 1;
+ min-height: 100vh;
+ align-items: center;
+}
+
+.clock {
+ width: 30rem;
+ height: 30rem;
+ border: 20px solid white;
+ border-radius: 50%;
+ margin: 50px auto;
+ position: relative;
+ padding: 2rem;
+ box-shadow:
+ 0 0 0 4px rgba(0,0,0,0.1),
+ inset 0 0 0 3px #EFEFEF,
+ inset 0 0 10px black,
+ 0 0 10px rgba(0,0,0,0.2);
+}
+
+.clock-face {
+ position: relative;
+ width: 100%;
+ height: 100%;
+ transform: translateY(-3px); /* account for the height of the clock hands */
+}
+
+.hand {
+ width: 50%;
+ height: 6px;
+ background: black;
+ position: absolute;
+ top: 50%;
+ transform-origin: 100%;
+ transform: rotate(90deg);
+ transition: all 0.05s;
+ transition-timing-function: cubic-bezier(0.1, 2.7, 0.58, 1)
+}
\ No newline at end of file
diff --git a/03 - CSS Variables/index-START.html b/03 - CSS Variables/index-START.html
index 6b9b539c09..0f832e90fa 100644
--- a/03 - CSS Variables/index-START.html
+++ b/03 - CSS Variables/index-START.html
@@ -1,51 +1,27 @@
-
- Scoped CSS Variables and JS
+
+ Scoped CSS Variables and JS
+
- Update CSS Variables with JS
+ Update CSS Variables with JS
-
-
+
-
-
-
+
diff --git a/03 - CSS Variables/scripts.js b/03 - CSS Variables/scripts.js
new file mode 100644
index 0000000000..a37c87a7c8
--- /dev/null
+++ b/03 - CSS Variables/scripts.js
@@ -0,0 +1,14 @@
+const inputs = document.querySelectorAll('.controls input');
+
+function handleUpdate(params) {
+ // console.log(this.value);
+
+ const suffix = this.dataset.sizing || '';
+ // console.log(suffix);
+
+ // console.log(this.name);
+ document.documentElement.style.setProperty(`--${this.name}`, this.value + suffix);
+}
+
+inputs.forEach(input => input.addEventListener('change', handleUpdate));
+inputs.forEach(input => input.addEventListener('mousemove', handleUpdate));
diff --git a/03 - CSS Variables/style.css b/03 - CSS Variables/style.css
new file mode 100644
index 0000000000..6880ec8eb8
--- /dev/null
+++ b/03 - CSS Variables/style.css
@@ -0,0 +1,41 @@
+/*
+ misc styles, nothing to do with CSS variables
+*/
+:root {
+ --base: #ffc600;
+ --spacing: 10px;
+ --blur: 10px;
+}
+
+img {
+ padding: var(--spacing);
+ background: var(--base);
+ filter: blur(var(--blur));
+}
+
+.hl {
+ color: var(--base);
+}
+
+#base {
+ margin: 0;
+ padding: 0;
+ border: none;
+}
+
+body {
+ text-align: center;
+ background: #193549;
+ color: white;
+ font-family: 'helvetica neue', sans-serif;
+ font-weight: 100;
+ font-size: 50px;
+}
+
+.controls {
+ margin-bottom: 50px;
+}
+
+input {
+ width: 100px;
+}
\ No newline at end of file
diff --git a/04 - Array Cardio Day 1/index-START.html b/04 - Array Cardio Day 1/index-START.html
index eec0ffc31d..b32e58b4db 100644
--- a/04 - Array Cardio Day 1/index-START.html
+++ b/04 - Array Cardio Day 1/index-START.html
@@ -1,59 +1,13 @@
-
- Array Cardio 💪
+
+ Array Cardio 💪
+
- Psst: have a look at the JavaScript Console 💁
-
+ Psst: have a look at the JavaScript Console 💁
+ Use this LINK for Paris Array Exercise.
+
diff --git a/04 - Array Cardio Day 1/scripts.js b/04 - Array Cardio Day 1/scripts.js
new file mode 100644
index 0000000000..07801a21ee
--- /dev/null
+++ b/04 - Array Cardio Day 1/scripts.js
@@ -0,0 +1,150 @@
+// Get your shorts on - this is an array workout!
+// ## Array Cardio Day 1
+
+// Some data we can work with
+
+const inventors = [
+ { first: 'Albert', last: 'Einstein', year: 1879, passed: 1955 },
+ { first: 'Isaac', last: 'Newton', year: 1643, passed: 1727 },
+ { first: 'Galileo', last: 'Galilei', year: 1564, passed: 1642 },
+ { first: 'Marie', last: 'Curie', year: 1867, passed: 1934 },
+ { first: 'Johannes', last: 'Kepler', year: 1571, passed: 1630 },
+ { first: 'Nicolaus', last: 'Copernicus', year: 1473, passed: 1543 },
+ { first: 'Max', last: 'Planck', year: 1858, passed: 1947 },
+ { first: 'Katherine', last: 'Blodgett', year: 1898, passed: 1979 },
+ { first: 'Ada', last: 'Lovelace', year: 1815, passed: 1852 },
+ { first: 'Sarah E.', last: 'Goode', year: 1855, passed: 1905 },
+ { first: 'Lise', last: 'Meitner', year: 1878, passed: 1968 },
+ { first: 'Hanna', last: 'Hammarström', year: 1829, passed: 1909 }
+];
+
+const people = ['Beck, Glenn', 'Becker, Carl', 'Beckett, Samuel', 'Beddoes, Mick', 'Beecher, Henry', 'Beethoven, Ludwig', 'Begin, Menachem', 'Belloc, Hilaire', 'Bellow, Saul', 'Benchley, Robert', 'Benenson, Peter', 'Ben-Gurion, David', 'Benjamin, Walter', 'Benn, Tony', 'Bennington, Chester', 'Benson, Leana', 'Bent, Silas', 'Bentsen, Lloyd', 'Berger, Ric', 'Bergman, Ingmar', 'Berio, Luciano', 'Berle, Milton', 'Berlin, Irving', 'Berne, Eric', 'Bernhard, Sandra', 'Berra, Yogi', 'Berry, Halle', 'Berry, Wendell', 'Bethea, Erin', 'Bevan, Aneurin', 'Bevel, Ken', 'Biden, Joseph', 'Bierce, Ambrose', 'Biko, Steve', 'Billings, Josh', 'Biondo, Frank', 'Birrell, Augustine', 'Black, Elk', 'Blair, Robert', 'Blair, Tony', 'Blake, William'];
+
+// Array.prototype.filter()
+// 1. Filter the list of inventors for those who were born in the 1500's
+/*
+const fifteen = inventors.filter(function(inventor) {
+ if (inventor.year >= 1500 && inventor.year <= 1599) {
+ return true; // keep it
+ }
+});
+*/
+
+/**********************************************
+ * ️️️☝️ Consolidating the above function ☝️
+*********************************************/
+const fifteen = inventors.filter(inventor => inventor.year >= 1500 && inventor.year <= 1599);
+console.table(fifteen);
+
+// Array.prototype.map()
+// 2. Give us an array of the inventors' first and last names
+const fullNames = inventors.map(inventor => `${inventor.first} ${inventor.last}`);
+console.log(fullNames);
+
+// Array.prototype.sort()
+// 3. Sort the inventors by birthdate, oldest to youngest
+/*
+const happyBirthday = inventors.sort(function(a, b) {
+ if(a.year > b.year) {
+ return 1;
+ } else {
+ return -1;
+ }
+});
+*/
+/**********************************************
+ * ️️️☝️ Consolidating the above function ☝️
+*********************************************/
+const happyBirthday = inventors.sort((a, b) => a.year > b.year ? 1 : -1);
+console.table(happyBirthday);
+
+// Array.prototype.reduce()
+// 4. How many years did all the inventors live?
+const totalYears = inventors.reduce((total, inventor) => {
+ return total + (inventor.passed - inventor.year);
+}, 0)
+console.log(totalYears);
+
+// 5. Sort the inventors by years lived
+const oldest = inventors.sort(function(a, b) {
+ const lastGuy = a.passed - a.year;
+ const nextGuy = b.passed - b.year;
+ /*
+ if (lastguy > nextGuy) {
+ return -1;
+ } else {
+ return 1;
+ }
+ */
+ /**********************************************
+ * ️️️☝️ Consolidating the above if statement ☝️
+ *********************************************/
+ return lastGuy > nextGuy ? -1 : 1;
+});
+console.table(oldest);
+
+// 6. create a list of Boulevards in Paris that contain 'de' anywhere in the name
+/*******************************************************************
+ * THIS ONLY WORKS IN THE CONSOLE ON THE WIKI PAGE
+ * https://en.wikipedia.org/wiki/Category:Boulevards_in_Paris
+*******************************************************************/
+//const category = document.querySelector('.mw-category');
+/***************************************
+ * ✌️ Two ways to convert to an array
+***************************************/
+/* ☝️ FIRST - use Array.from - more readable */
+//const links = Array.from(category.querySelectorAll('a'));
+
+/* ✌️ SECOND - ES6 dot spread */
+// const links = [...(category.querySelectorAll('a')];
+
+// const de = links
+// .map(link => link.textContent);
+// .filter(streetName => streetName.includes('de'));
+/****************************************************************
+ * FINISHED CODE TO USE IN THE CONSOLE,
+ * WILL NEED TO TYPE IN YOUR CONST FOR A RETURN VALUE
+*****************************************************************/
+/*
+const category = document.querySelector('.mw-category');
+const links = Array.from(category.querySelectorAll('a'));
+
+const de = links
+ .map(link => link.textContent)
+ .filter(streetName => streetName.includes('de'));
+*/
+
+
+// 7. sort Exercise
+// Sort the people alphabetically by last name
+// const abc = people.sort(function(lastOne, nextOne) {
+// const [aLast, aFirst] = lastOne.split(', ');
+// const [bLast, bFirst] = nextOne.split(', ');
+// // console.log(last, first);
+// return aLast > bLast ? -1 : 1;
+// });
+/********************************************************
+ * ️️️☝️ Turns Proper Function into an Arrow Function ☝️
+********************************************************/
+const abc = people.sort((lastOne, nextOne) => {
+ const [aLast, aFirst] = lastOne.split(', ');
+ const [bLast, bFirst] = nextOne.split(', ');
+ // console.log(last, first);
+ return aLast > bLast ? -1 : 1;
+});
+console.log(abc);
+
+
+// 8. Reduce Exercise
+// Sum up the instances of each of these
+const data = ['car', 'car', 'truck', 'truck', 'bike', 'walk', 'car', 'van', 'bike', 'walk', 'car', 'van', 'car', 'truck'];
+
+const transportation = data.reduce(function(obj, item){
+ if(!obj[item]){
+ obj[item] = 0;
+ }
+ obj[item]++;
+ console.log(item);
+ return obj;
+}, {});
+console.log(transportation);
diff --git a/04 - Array Cardio Day 1/style.css b/04 - Array Cardio Day 1/style.css
new file mode 100644
index 0000000000..48f55d04ca
--- /dev/null
+++ b/04 - Array Cardio Day 1/style.css
@@ -0,0 +1,15 @@
+body {
+ text-align: center;
+ background: #b7116f;
+ color: white;
+ font-family: 'helvetica neue', sans-serif;
+ font-weight: 100;
+ font-size: 50px;
+}
+
+a {
+ color: white;
+ font-weight: bold;
+ text-decoration: none;
+ border-bottom: 10px solid white;
+}
\ No newline at end of file
diff --git a/05 - Flex Panel Gallery/index-START.html b/05 - Flex Panel Gallery/index-START.html
index 71d1c26f00..ecc3596fde 100644
--- a/05 - Flex Panel Gallery/index-START.html
+++ b/05 - Flex Panel Gallery/index-START.html
@@ -1,114 +1,40 @@
-
- Flex Panels 💪
-
+
+ Flex Panels 💪
+
+
-
-
-
-
-
-
-
Give
-
Take
-
Receive
-
-
-
Experience
-
It
-
Today
-
-
-
-
-
-
-
-
-
+
+
+
+
Give
+
Take
+
Receive
+
+
+
Experience
+
It
+
Today
+
+
+
+
+
+
diff --git a/05 - Flex Panel Gallery/scripts.js b/05 - Flex Panel Gallery/scripts.js
new file mode 100644
index 0000000000..66dafc3aa3
--- /dev/null
+++ b/05 - Flex Panel Gallery/scripts.js
@@ -0,0 +1,16 @@
+const panels = document.querySelectorAll('.panel');
+
+function toggleOpen() {
+ this.classList.toggle('open');
+}
+
+function toggleActive(e) {
+ // console.log(e.propertyName);
+ if(e.propertyName.includes('flex')) {
+ this.classList.toggle('open-active');
+ }
+}
+
+panels.forEach(panel => panel.addEventListener('click', toggleOpen));
+panels.forEach(panel => panel.addEventListener('transitionend', toggleActive));
+
diff --git a/05 - Flex Panel Gallery/style.css b/05 - Flex Panel Gallery/style.css
new file mode 100644
index 0000000000..0ae1bbfb72
--- /dev/null
+++ b/05 - Flex Panel Gallery/style.css
@@ -0,0 +1,99 @@
+html {
+ box-sizing: border-box;
+ background: #ffc600;
+ font-family: 'helvetica neue';
+ font-size: 20px;
+ font-weight: 200;
+}
+
+body {
+ margin: 0;
+}
+
+*, *:before, *:after {
+ box-sizing: inherit;
+}
+
+.panels {
+ min-height: 100vh;
+ overflow: hidden;
+ display: flex;
+}
+
+.panel {
+ background: #6B0F9C;
+ box-shadow: inset 0 0 0 5px rgba(255,255,255,0.1);
+ color: white;
+ text-align: center;
+ align-items: center;
+ /* Safari transitionend event.propertyName === flex */
+ /* Chrome + FF transitionend event.propertyName === flex-grow */
+ transition:
+ font-size 0.7s cubic-bezier(0.61,-0.19, 0.7,-0.11),
+ flex 0.7s cubic-bezier(0.61,-0.19, 0.7,-0.11),
+ background 0.2s;
+ font-size: 20px;
+ background-size: cover;
+ background-position: center;
+ flex: 1;
+ justify-content: center;
+ align-items: center;
+ display: flex;
+ flex-direction: column;
+}
+
+.panel1 {
+ background-image:url(https://source.unsplash.com/gYl-UtwNg_I/1500x1500);
+}
+.panel2 {
+ background-image:url(https://source.unsplash.com/rFKUFzjPYiQ/1500x1500);
+}
+.panel3 {
+ background-image:url(https://images.unsplash.com/photo-1465188162913-8fb5709d6d57?ixlib=rb-0.3.5&q=80&fm=jpg&crop=faces&cs=tinysrgb&w=1500&h=1500&fit=crop&s=967e8a713a4e395260793fc8c802901d);
+}
+.panel4 {
+ background-image:url(https://source.unsplash.com/ITjiVXcwVng/1500x1500);
+}
+.panel5 {
+ background-image:url(https://source.unsplash.com/3MNzGlQM7qs/1500x1500);
+}
+
+/* Flex Children */
+.panel > * {
+ margin: 0;
+ width: 100%;
+ transition: transform 0.5s;
+ flex: 1 0 auto;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+}
+
+.panel > *:first-child {
+ transform: translateY(-100%);
+}
+
+.panel > *:last-child {
+ transform: translateY(100%);
+}
+
+.panel.open-active > *:first-child,
+.panel.open-active > *:last-child {
+ transform: translateY(0);
+}
+
+.panel p {
+ text-transform: uppercase;
+ font-family: 'Amatic SC', cursive;
+ text-shadow: 0 0 4px rgba(0, 0, 0, 0.72), 0 0 14px rgba(0, 0, 0, 0.45);
+ font-size: 2em;
+}
+
+.panel p:nth-child(2) {
+ font-size: 4em;
+}
+
+.panel.open {
+ flex: 5;
+ font-size: 40px;
+}
\ No newline at end of file
diff --git a/06 - Type Ahead/index-START.html b/06 - Type Ahead/index-START.html
index 1436886918..613cbc871f 100644
--- a/06 - Type Ahead/index-START.html
+++ b/06 - Type Ahead/index-START.html
@@ -1,22 +1,19 @@
-
- Type Ahead 👀
-
+
+ Type Ahead 👀
+
-
-
-
+
+
+
diff --git a/06 - Type Ahead/scripts.js b/06 - Type Ahead/scripts.js
new file mode 100644
index 0000000000..97708f6f8d
--- /dev/null
+++ b/06 - Type Ahead/scripts.js
@@ -0,0 +1,47 @@
+const endpoint = 'https://gist.githubusercontent.com/Miserlou/c5cd8364bf9b2420bb29/raw/2bf258763cdddd704f8ffd3ea9a3e81d25e2c6f6/cities.json';
+
+const cities = [];
+
+fetch(endpoint)
+ .then(blob => blob.json())
+ .then(data => cities.push(...data));
+
+function findMatches(wordToMatch, cities) {
+ return cities.filter(place => {
+ // here we need to figure out if the city or state matches what was searched
+ const regex = new RegExp(wordToMatch, 'gi');
+ return place.city.match(regex) || place.state.match(regex);
+ });
+}
+
+function numberWithCommas(x) {
+ return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',');
+}
+
+// Display Function
+function displayMatches() {
+ // console.log(this.value);
+ const matchArray = findMatches(this.value, cities);
+ // console.log(matchArray);
+
+ const html = matchArray.map(place => {
+ const regex = new RegExp(this.value, 'gi');
+ cityName = place.city.replace(regex, `${this.value}`);
+ stateName = place.state.replace(regex, `${this.value}`);
+
+ return `
+
+ ${cityName}, ${stateName}
+ ${numberWithCommas(place.population)}
+
+ `;
+ }).join('');
+ suggestions.innerHTML = html;
+}
+
+const searchInput = document.querySelector('.search');
+const suggestions = document.querySelector('.suggestions');
+
+searchInput.addEventListener('change', displayMatches);
+searchInput.addEventListener('keyup', displayMatches);
+
diff --git a/06 - Type Ahead/style.css b/06 - Type Ahead/style.css
index 5203de42a4..8674ba37a0 100644
--- a/06 - Type Ahead/style.css
+++ b/06 - Type Ahead/style.css
@@ -1,74 +1,74 @@
- html {
- box-sizing: border-box;
- background: #ffc600;
- font-family: 'helvetica neue';
- font-size: 20px;
- font-weight: 200;
- }
+ html {
+ box-sizing: border-box;
+ background: #ffc600;
+ font-family: 'helvetica neue';
+ font-size: 20px;
+ font-weight: 200;
+ }
- *, *:before, *:after {
- box-sizing: inherit;
- }
+ *, *:before, *:after {
+ box-sizing: inherit;
+ }
- input {
- width: 100%;
- padding: 20px;
- }
+ input {
+ width: 100%;
+ padding: 20px;
+ }
- .search-form {
- max-width: 400px;
- margin: 50px auto;
- }
+ .search-form {
+ max-width: 400px;
+ margin: 50px auto;
+ }
- input.search {
- margin: 0;
- text-align: center;
- outline: 0;
- border: 10px solid #F7F7F7;
- width: 120%;
- left: -10%;
- position: relative;
- top: 10px;
- z-index: 2;
- border-radius: 5px;
- font-size: 40px;
- box-shadow: 0 0 5px rgba(0, 0, 0, 0.12), inset 0 0 2px rgba(0, 0, 0, 0.19);
- }
+ input.search {
+ margin: 0;
+ text-align: center;
+ outline: 0;
+ border: 10px solid #F7F7F7;
+ width: 120%;
+ left: -10%;
+ position: relative;
+ top: 10px;
+ z-index: 2;
+ border-radius: 5px;
+ font-size: 40px;
+ box-shadow: 0 0 5px rgba(0, 0, 0, 0.12), inset 0 0 2px rgba(0, 0, 0, 0.19);
+ }
- .suggestions {
- margin: 0;
- padding: 0;
- position: relative;
- /*perspective: 20px;*/
- }
+ .suggestions {
+ margin: 0;
+ padding: 0;
+ position: relative;
+ /*perspective: 20px;*/
+ }
- .suggestions li {
- background: white;
- list-style: none;
- border-bottom: 1px solid #D8D8D8;
- box-shadow: 0 0 10px rgba(0, 0, 0, 0.14);
- margin: 0;
- padding: 20px;
- transition: background 0.2s;
- display: flex;
- justify-content: space-between;
- text-transform: capitalize;
- }
+ .suggestions li {
+ background: white;
+ list-style: none;
+ border-bottom: 1px solid #D8D8D8;
+ box-shadow: 0 0 10px rgba(0, 0, 0, 0.14);
+ margin: 0;
+ padding: 20px;
+ transition: background 0.2s;
+ display: flex;
+ justify-content: space-between;
+ text-transform: capitalize;
+ }
- .suggestions li:nth-child(even) {
- transform: perspective(100px) rotateX(3deg) translateY(2px) scale(1.001);
- background: linear-gradient(to bottom, #ffffff 0%,#EFEFEF 100%);
- }
+ .suggestions li:nth-child(even) {
+ transform: perspective(100px) rotateX(3deg) translateY(2px) scale(1.001);
+ background: linear-gradient(to bottom, #ffffff 0%,#EFEFEF 100%);
+ }
- .suggestions li:nth-child(odd) {
- transform: perspective(100px) rotateX(-3deg) translateY(3px);
- background: linear-gradient(to top, #ffffff 0%,#EFEFEF 100%);
- }
+ .suggestions li:nth-child(odd) {
+ transform: perspective(100px) rotateX(-3deg) translateY(3px);
+ background: linear-gradient(to top, #ffffff 0%,#EFEFEF 100%);
+ }
- span.population {
- font-size: 15px;
- }
+ span.population {
+ font-size: 15px;
+ }
- .hl {
- background: #ffc600;
- }
+ .hl {
+ background: #ffc600;
+ }