{"__browser":{"device":"unknown_device","mobile":false,"name":"unknown browser","platform":"unknown_platform","version":"0"},"__constants":{},"__CPDATA":{"domain_iframe":"https://cdpn.io","environment":"production","host":"codepen.io","iframe_allow":"accelerometer; ambient-light-sensor; camera; display-capture; encrypted-media; geolocation; gyroscope; microphone; midi; payment; web-share; vr","iframe_sandbox":"allow-forms allow-modals allow-pointer-lock allow-popups allow-same-origin allow-scripts allow-top-navigation-by-user-activation allow-downloads allow-presentation"},"__graphql":{"data":{"data":{"sessionUser":{"id":"VoDkNZ","name":"Captain Anonymous","title":"Captain Anonymous","avatar":"https://assets.codepen.io/t-1/user-default-avatar.jpg?format=auto&version=0","currentContext":{"id":"VoDkNZ","title":"Captain Anonymous","name":"Captain Anonymous","avatar":"https://assets.codepen.io/t-1/user-default-avatar.jpg?format=auto&version=0","username":"anon","__typename":"User"},"currentTeamId":null,"username":"anon","admin":false,"anon":true,"pro":false,"verified":false,"teams":[],"__typename":"User"}}},"url":"https://codepen.io/graphql","api":"cprails","cpedata":{"action":"show","controller":"live_fullpage"}},"__user":{"anon":true,"base_url":"/anon/","current_team_id":0,"current_team_hashid":null,"hashid":"VoDkNZ","id":1,"itemType":"user","name":"Captain Anonymous","paid":false,"tier":0,"username":"anon","created_at":null,"email_verified":null,"collections_count":0,"collections_private_count":0,"followers_count":0,"followings_count":0,"pens_count":0,"pens_private_count":0,"projects_count":0,"projects_private_count":0},"__firebase":{"config":{"apiKey":"AIzaSyBgLAe7N_MdFpuVofMkcQLGwwhUu5tuxls","authDomain":"codepen-store-production.firebaseapp.com","databaseURL":"https://codepen-store-production.firebaseio.com","disabled":false,"projectId":"codepen-store-production"},"token":"eyJhbGciOiJSUzI1NiJ9.eyJhdWQiOiJodHRwczovL2lkZW50aXR5dG9vbGtpdC5nb29nbGVhcGlzLmNvbS9nb29nbGUuaWRlbnRpdHkuaWRlbnRpdHl0b29sa2l0LnYxLklkZW50aXR5VG9vbGtpdCIsImNsYWltcyI6eyJvd25lcklkIjoiVm9Ea05aIiwiYWRtaW4iOmZhbHNlfSwiZXhwIjoxNjc1MjY0MDk3LCJpYXQiOjE2NzUyNjA0OTcsImlzcyI6ImZpcmViYXNlLWFkbWluc2RrLThva3lsQGNvZGVwZW4tc3RvcmUtcHJvZHVjdGlvbi5pYW0uZ3NlcnZpY2VhY2NvdW50LmNvbSIsInN1YiI6ImZpcmViYXNlLWFkbWluc2RrLThva3lsQGNvZGVwZW4tc3RvcmUtcHJvZHVjdGlvbi5pYW0uZ3NlcnZpY2VhY2NvdW50LmNvbSIsInVpZCI6IlZvRGtOWiJ9.ER_s_rCNrdfLinjqax_IuLioePKZQAria5ugx-Ir8_JEbCl_gOG9gCIiee8rcneh5OTn20AvK0hZ3Jj-d18nPNx08q4yU7OZMD0XmCgB7-fkL7ecZsq6UslsAR8gxweisLD096-HvbVW6j1Gf9RYlPFjAQaj-_GzVVKMMUXAl-Vu2ab92mjl4pI1cqhH8rc22tvNMY5c8d_9nVsv-QSCsAcrOjiJtm5ryLU_YvkC72eQDvx4q5ePZnnRMcvSE7Rozmwy0Yi7QADWaZF1noYdnTOLV4AEwroY_iWIU8gU_SHCNLrnnATd02z3de8J_x7uvhXChk5LqO5ItULixMlD4A"},"__pay_stripe_public_key":"pk_live_2GndomDfiklqpSNQn8FrGuwZSMIMzha7DkLJqlYe7IR0ihKAlKdiHg68JJc5eVPt68rzAjzAAVXcUwjySHRCsgjQQ00gtRBUFNH","__pay_braintree_env":"production","__item":"{\"id\":39361295,\"user_id\":369687,\"html\":\"<main class=\\\"container\\\">\\n\\t<form class=\\\"sliders\\\">\\n\\n\\t\\t<div class=\\\"sliders__fields\\\" id=\\\"red\\\">\\n\\t\\t\\t<label for=\\\"red\\\" class=\\\"sliders__label\\\">R<\\/label>\\n\\t\\t\\t<div class=\\\"sliders__bg\\\">\\n\\t\\t\\t\\t<input name=\\\"red\\\" type=\\\"range\\\" min=\\\"0\\\" max=\\\"255\\\" value=\\\"136\\\" class=\\\"sliders__slider\\\">\\n\\t\\t\\t<\\/div>\\n\\t\\t\\t<span class=\\\"sliders__output\\\">88<\\/span>\\n\\t\\t<\\/div>\\n\\n\\t\\t<div class=\\\"sliders__fields\\\" id=\\\"green\\\">\\n\\t\\t\\t<label for=\\\"green\\\" class=\\\"sliders__label\\\">G<\\/label>\\n\\t\\t\\t<div class=\\\"sliders__bg\\\">\\n\\t\\t\\t\\t<input name=\\\"green\\\" type=\\\"range\\\" min=\\\"0\\\" max=\\\"255\\\" value=\\\"0\\\" class=\\\"sliders__slider\\\">\\n\\t\\t\\t<\\/div>\\n\\t\\t\\t<span class=\\\"sliders__output\\\">00<\\/span>\\n\\t\\t<\\/div>\\n\\n\\t\\t<div class=\\\"sliders__fields\\\" id=\\\"blue\\\">\\n\\t\\t\\t<label for=\\\"blue\\\" class=\\\"sliders__label\\\">B<\\/label>\\n\\t\\t\\t<div class=\\\"sliders__bg\\\">\\n\\t\\t\\t\\t<input name=\\\"blue\\\" type=\\\"range\\\" min=\\\"0\\\" max=\\\"255\\\" value=\\\"136\\\" class=\\\"sliders__slider\\\">\\n\\t\\t\\t<\\/div>\\n\\t\\t\\t<span class=\\\"sliders__output\\\">88<\\/span>\\n\\t\\t<\\/div>\\n\\n\\t<\\/form>\\n\\t<article class=\\\"rgb-color\\\"><\\/article>\\n<\\/main>\\n<style data=\\\"thumb-style\\\" type=\\\"text\\/css\\\"><\\/style>\",\"css\":\"* {\\n\\tbox-sizing: border-box;\\n\\tmargin: 0;\\n\\tpadding: 0;\\n}\\n\\nbody {\\n\\tbackground: hsl(220, 80%, 60%);\\n\\tcolor: white;\\n\\tfont-family: monospace;\\n\\tfont-size: 1.2rem;\\n\\tfont-size: calc(16px + (28 - 16) * ((100vw - 300px) \\/ (2000 - 300)));\\n\\theight: 100%;\\n\\twidth: 100%;\\n}\\n\\n.container {\\n\\tbackground: #181111;\\n\\tbackground: radial-gradient(circle, hsl(0, 7%, 12%) 30%, hsl(0, 7%, 5%) 100%);\\n\\n\\tbox-shadow: 0px 10px 30px hsla(0, 0%, 0%, 0.5);\\n\\tcolor: black;\\n\\tdisplay: grid;\\n\\tgrid-gap: 2vw;\\n\\tgrid-template: 1fr \\/ 1fr 96vmin;\\n\\tgrid-template-areas: \\\"sliders square\\\";\\n\\n\\theight: 1000px;\\n\\theight: 100vh;\\n\\n\\tpadding: 2%;\\n\\tpadding: 2vw;\\n\\n\\twidth: 100%;\\n\\twidth: 100vw;\\n}\\n\\n.rgb-color {\\n\\tbackground: crimson;\\n\\tdisplay: grid;\\n\\tplace-items: center;\\n\\tgrid-area: square;\\n}\\n\\n.rgb-color::after {\\n\\tanimation: title-fade 1s 4s 1 ease-out forwards;\\n\\tcolor: white;\\n\\tcontent: 'RGB';\\n\\tfont-family: futura, sans-serif;\\n\\tfont-size: 5em;\\n\\tfont-weight: bold;\\n}\\n\\n@keyframes title-fade {\\n\\tfrom {opacity: 1;}\\n\\tto {opacity: 0;}\\n}\\n\\n.sliders {\\n\\tbackground: #181111;\\n\\tbackground: radial-gradient(circle, hsl(0, 7%, 12%) 30%, hsl(0, 7%, 5%) 100%);\\n\\n\\tborder: 1px solid #666;\\n\\tcolor: white;\\n\\tdisplay: grid;\\n\\tgrid-area: sliders;\\n\\tgrid-gap: 1.6em;\\n\\tpadding: 2em 2em 2.1em;\\n\\talign-content: center;\\n}\\n\\n.sliders__fields {\\n\\tborder: none;\\n\\tdisplay: grid;\\n\\tgrid-gap: 1.2em;\\n\\tgrid-template-columns: auto 1fr auto;\\n\\tgrid-template-areas: \\\"label slider output\\\";\\n\\talign-items: center;\\n}\\n\\n.sliders__label {\\n\\tgrid-area: label;\\n\\tjustify-self: start;\\n}\\n\\n.sliders__slider {\\n\\tcursor: pointer;\\n\\toutline: none;\\n\\tmargin: 0;\\n\\twidth: 100%;\\n}\\n\\n.sliders__bg {\\n\\tborder: 1px solid black;\\n\\tborder-radius: 1.5em;\\n\\tbox-shadow: -1px 1px 3px 0px hsla(0, 0%, 100%, 0.3);\\n\\tdisplay: grid;\\n\\tgrid-area: slider;\\n\\twidth: 100%;\\n}\\n\\n.sliders__output {\\n\\tgrid-area: output;\\n\\tjustify-self: end;\\n}\\n\\n@media screen and (max-width: 220vmin) {\\n\\t.container {\\n\\t\\tgrid-template: 1fr auto \\/ 1fr;\\n\\t\\tgrid-template-areas:\\n\\t\\t\\t\\\"square\\\"\\n\\t\\t\\t\\\"sliders\\\";\\n\\t}\\n}\\n\\n@media screen and (max-width: 400px) {\\n\\t.sliders {\\n\\t\\tpadding: 1.2em 2em 2.8em;\\n\\t}\\n\\t.sliders__fields {\\n\\t\\tborder: none;\\n\\t\\tdisplay: grid;\\n\\t\\tgrid-gap: 0.5em;\\n\\t\\tgrid-template: 1fr 1fr \\/ 1fr 1fr;\\n\\t\\tgrid-template-areas:\\n\\t\\t\\t\\\"label output\\\"\\n\\t\\t\\t\\\"slider slider\\\";\\n\\t}\\n\\n\\t[for=\\\"red\\\"]:after {\\n\\t\\tcontent: \\\"ed\\\";\\n\\t}\\n\\n\\t[for=\\\"green\\\"]:after {\\n\\t\\tcontent: \\\"reen\\\";\\n\\t}\\n\\n\\t[for=\\\"blue\\\"]:after {\\n\\t\\tcontent: \\\"lue\\\";\\n\\t}\\n}\\n\\n\\/\\/ From here on down is Ana Tudor's code;\\n\\/\\/ I'm not sure what all of it does.\\n\\/\\/ Styling sliders is not trivial.\\n\\/\\/ https:\\/\\/codepen.io\\/thebabydino\\/pen\\/goYYrN\\n\\n$track-w: 100%;\\n$track-h: 0em;\\n$thumb-d: 1.5em;\\n$track-c: #ccc;\\n$filll-c: #95a;\\n\\n@mixin track($fill: 0) {\\n\\tbox-sizing: border-box;\\n\\tborder: none;\\n\\twidth: $track-w;\\n\\theight: $track-h;\\n\\tbackground: $track-c;\\n}\\n\\n@mixin fill() {\\n\\theight: $track-h;\\n\\tbackground: $filll-c;\\n}\\n\\n@mixin thumb() {\\n\\tbox-sizing: border-box;\\n\\tborder: none;\\n\\tbox-shadow: 0px 0px 0px 0.1em black, 0px 0px 0px 0.3em white,\\n\\t\\t0px 0px 0px 0.4em black;\\n\\twidth: $thumb-d;\\n\\theight: $thumb-d;\\n\\tborder-radius: 50%;\\n\\tbackground: #f90;\\n}\\n\\n[type=\\\"range\\\"] {\\n\\t&,\\n\\t&::-webkit-slider-thumb {\\n\\t\\t-webkit-appearance: none;\\n\\t}\\n\\n\\tmargin: 0;\\n\\tpadding: 0;\\n\\twidth: $track-w;\\n\\theight: $thumb-d;\\n\\tbackground: transparent;\\n\\tfont: 1em\\/1 arial, sans-serif;\\n\\n\\t&::-webkit-slider-runnable-track {\\n\\t\\t@include track(1);\\n\\t}\\n\\t&::-moz-range-track {\\n\\t\\t@include track;\\n\\t}\\n\\t&::-ms-track {\\n\\t\\t@include track;\\n\\t}\\n\\n\\t&::-moz-range-progress {\\n\\t\\t@include fill;\\n\\t}\\n\\t&::-ms-fill-lower {\\n\\t\\t@include fill;\\n\\t}\\n\\n\\t&::-webkit-slider-thumb {\\n\\t\\tmargin-top: 0.5*($track-h - $thumb-d);\\n\\t\\t@include thumb;\\n\\t}\\n\\t&::-moz-range-thumb {\\n\\t\\t@include thumb;\\n\\t}\\n\\t&::-ms-thumb {\\n\\t\\tmargin-top: 0;\\n\\t\\t@include thumb;\\n\\t}\\n\\n\\t&::-ms-tooltip {\\n\\t\\tdisplay: none;\\n\\t}\\n}\",\"js\":\"'use strict';\\n\\nconst ColorSelector = function() {\\n\\tthis.redSlider = document.querySelector('[name=red]');\\n\\tthis.greenSlider = document.querySelector('[name=green]');\\n\\tthis.blueSlider = document.querySelector('[name=blue]');\\n\\t\\n\\tthis.output = document.querySelector('.rgb-color');\\n\\tthis.thumbStyle = document.querySelector('[data=thumb-style]');\\n\\t\\n\\tthis.red = 1 * this.redSlider.value;\\n\\tthis.green = 1 * this.greenSlider.value;\\n\\tthis.blue = 1 * this.blueSlider.value;\\n\\t\\n\\tthis.redBg = document.querySelector('#red>.sliders__bg');\\n\\tthis.greenBg = document.querySelector('#green>.sliders__bg');\\n\\tthis.blueBg = document.querySelector('#blue>.sliders__bg');\\n\\t\\n\\tthis.redOut = document.querySelector('#red>span');\\n\\tthis.greenOut = document.querySelector('#green>span');\\n\\tthis.blueOut = document.querySelector('#blue>span');\\n}\\n\\nColorSelector.prototype.init = function() {\\n\\tthis.redSlider.oninput = this.handleRed.bind(this);\\n\\tthis.greenSlider.oninput = this.handleGreen.bind(this);\\n\\tthis.blueSlider.oninput = this.handleBlue.bind(this);\\n\\t\\n\\tthis.updateRed();\\n\\tthis.updateGreen();\\n\\tthis.updateBlue();\\n\\t\\n\\tthis.redOut.textContent = ('0' + this.red.toString(16).toUpperCase()).slice(-2);\\n\\tthis.greenOut.textContent = ('0' + this.green.toString(16).toUpperCase()).slice(-2);\\n\\tthis.blueOut.textContent = ('0' + this.blue.toString(16).toUpperCase()).slice(-2);\\n\\t\\n\\tthis.updateThumbs();\\n\\tthis.updateScreen();\\n}\\n\\nColorSelector.prototype.updateScreen = function() {\\n\\tthis.output.style.background = `rgb(${this.red},${this.green},${this.blue})`;\\n}\\n\\nColorSelector.prototype.updateRed = function() {\\n\\tconst green = this.green;\\n\\tconst blue = this.blue;\\n\\tthis.redBg.style.background = \\n\\t\\t`linear-gradient(to right, rgb(0,${green},${blue}), rgb(255,${green},${blue}))`;\\n}\\n\\nColorSelector.prototype.updateGreen = function() {\\n\\tconst red = this.red;\\n\\tconst blue = this.blue;\\n\\tthis.greenBg.style.background = \\n\\t\\t`linear-gradient(to right, rgb(${red},0,${blue}), rgb(${red},255,${blue}))`;\\n}\\n\\nColorSelector.prototype.updateBlue = function() {\\n\\tconst red = this.red;\\n\\tconst green = this.green;\\n\\tthis.blueBg.style.background = \\n\\t\\t`linear-gradient(to right, rgb(${red},${green},0), rgb(${red},${green},255))`;\\n}\\n\\nColorSelector.prototype.updateThumbs = function() {\\n\\tconst red = this.red;\\n\\tconst green = this.green;\\n\\tconst blue = this.blue;\\n\\tconst rgb = `-thumb{background: rgb(${red},${green},${blue});}`\\n\\tthis.thumbStyle.innerHTML = \\n\\t\\t'[name=red]::-webkit-slider' + rgb +\\n\\t\\t'[name=red]::-moz-range' + rgb +\\n\\t\\t'[name=red]::-ms' + rgb +\\n\\t\\t'[name=green]::-webkit-slider' + rgb +\\n\\t\\t'[name=green]::-moz-range' + rgb +\\n\\t\\t'[name=green]::-ms' + rgb +\\n\\t\\t'[name=blue]::-webkit-slider' + rgb +\\n\\t\\t'[name=blue]::-moz-range' + rgb +\\n\\t\\t'[name=blue]::-ms' + rgb;\\n}\\n\\nColorSelector.prototype.handleRed = function(e) {\\n\\tthis.red = 1 * e.target.value;\\n\\tthis.redOut.textContent = ('0' + this.red.toString(16).toUpperCase()).slice(-2);\\n\\tthis.updateThumbs();\\n\\tthis.updateGreen();\\n\\tthis.updateBlue();\\n\\tthis.updateScreen();\\n}\\n\\nColorSelector.prototype.handleGreen = function(e) {\\n\\tthis.green = 1 * e.target.value;\\n\\tthis.greenOut.textContent = ('0' + this.green.toString(16).toUpperCase()).slice(-2);\\n\\tthis.updateThumbs();\\n\\tthis.updateRed();\\n\\tthis.updateBlue();\\n\\tthis.updateScreen();\\n}\\n\\nColorSelector.prototype.handleBlue = function(e) {\\n\\tthis.blue = 1 * e.target.value;\\n\\tthis.blueOut.textContent = ('0' + this.blue.toString(16).toUpperCase()).slice(-2);\\n\\tthis.updateThumbs();\\n\\tthis.updateRed();\\n\\tthis.updateGreen();\\n\\tthis.updateScreen();\\n}\\n\\nconst colorSelector = new ColorSelector(document.querySelector('main.container'));\\ncolorSelector.init();\",\"html_pre_processor\":\"none\",\"css_pre_processor\":\"scss\",\"js_pre_processor\":\"babel\",\"html_classes\":\"\",\"css_starter\":\"neither\",\"js_library\":null,\"created_at\":\"2019-08-15T01:46:24.000Z\",\"updated_at\":\"2019-08-22T15:24:29.000Z\",\"title\":\"RGB color selector\",\"description\":\"RGB color selector, with slider code by [Ana Tudor](https:\\/\\/codepen.io\\/thebabydino\\/pen\\/goYYrN).\",\"slug_hash\":\"jONqVLY\",\"head\":\"\",\"private\":false,\"slug_hash_private\":\"cbc8bcd48473e878c8f2da27c011d453\",\"has_animation\":true,\"team_id\":0,\"css_prefix\":\"prefixfree\",\"template\":false,\"parent_id\":19902510,\"comments_count\":0,\"custom_screenshot_filename\":null,\"loves_count\":0,\"pick\":false,\"popularity_score\":0,\"views_count\":0,\"pick_visible_at\":\"2022-11-08T22:42:55.128Z\",\"pen_hash\":null,\"hashid\":\"jONqVLY\"}"}