UNPKG

@microblink/blinkid-in-browser-sdk

Version:

A simple ID scanning library for WebAssembly-enabled browsers.

372 lines (369 loc) 15.8 kB
/** * Copyright (c) Microblink Ltd. All rights reserved. */ /** * Copyright (c) Microblink Ltd. All rights reserved. */ /** * SASS variables, not customizable via CSS variables */ /** * Camera experiences */ /** * Copyright (c) Microblink Ltd. All rights reserved. */ /* --- Reticle --- */ @keyframes reticle-rotation { 100% { transform: rotate(360deg); } } @keyframes reticle-horizontal-shrink { 0% { height: 50%; top: 25%; } 50% { height: 30%; top: 35%; } 80% { height: 30%; top: 35%; } 100% { height: 50%; top: 25%; } } @keyframes reticle-cursor-horizontal-flip { 0% { opacity: 0; } 100% { opacity: 0; } } @keyframes reticle-horizontal-flip { 0% { border-radius: 0; background-color: transparent; -webkit-backdrop-filter: none; backdrop-filter: none; filter: drop-shadow(0px 2px 24px rgba(0, 0, 0, 0.1), 0px 2px 8px rgba(0, 0, 0, 0.05)); background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOTYiIGhlaWdodD0iNjEiIHZpZXdCb3g9IjAgMCA5NiA2MSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwKSI+CjxwYXRoIGQ9Ik05Mi4yODk3IDAuNTc3NDg0SDMuNzEwMzFDMS42NzEzMSAwLjU3NzQ4NCAwIDIuMjQ4NzkgMCA0LjI4Nzc5VjU3LjA2NzdDMCA1OS4xMDY3IDEuNjcxMzEgNjAuNzc4MSAzLjcxMDMxIDYwLjc3ODFIOTIuMjg5N0M5NC4zMjg3IDYwLjc3ODEgOTYgNTkuMTA2NyA5NiA1Ny4wNjc3VjQuMjg3NzlDOTYgMi4yNDg3OSA5NC4zMjg3IDAuNTc3NDg0IDkyLjI4OTcgMC41Nzc0ODRaTTM4LjMzOTggMzYuNTQ0MUMzOC4zMzk4IDM4LjAxNDggMzcuMTM2NSAzOS4yMTgyIDM1LjY2NTcgMzkuMjE4MkgzMy4xNTg4QzMyLjU5MDUgMzYuNzQ0NiAzMS4yNTM1IDM1LjAwNjUgMjguMDExMSAzNC4yMDQyTDI1LjMzNyAzMy41MzU3TDI3LjIwODkgMzEuNTMwMUMyOC42NDYyIDI5Ljk5MjUgMjkuNDgxOSAyNy43NTMgMjkuNDgxOSAyNS40MTMxQzI5LjQ4MTkgMjIuNzM5IDI4Ljg0NjggMTYuNTIxOCAyMy4wOTc1IDE2LjUyMThDMTguMTUwNCAxNi41MjE4IDE2LjM3ODggMjEuMTAxMiAxNi4zNzg4IDI1LjQxMzFDMTYuMzc4OCAyNy43NTMgMTcuMjE0NSAyOS45OTI1IDE4LjY1MTggMzEuNTMwMUwyMC41MjM3IDMzLjUzNTdMMTcuODQ5NiAzNC4yMDQyQzE0LjkwODEgMzQuOTM5NiAxMy40MDM5IDM2LjM3NjkgMTIuNzM1NCAzOS4yMTgySDEwLjIyODRDOC43NTc2NiAzOS4yMTgyIDcuNTU0MzIgMzguMDE0OCA3LjU1NDMyIDM2LjU0NDFWMTEuMDczM0M3LjU1NDMyIDkuNjAyNTUgOC43NTc2NiA4LjM5OTIxIDEwLjIyODQgOC4zOTkyMUgzNS42OTkyQzM3LjE2OTkgOC4zOTkyMSAzOC4zNzMzIDkuNjAyNTUgMzguMzczMyAxMS4wNzMzVjM2LjU0NDFIMzguMzM5OFpNNzMuMTAzMSAzNC4yNzExSDQ3LjE2NDNWMzAuOTI4NUg3My4xMDMxVjM0LjI3MTFaTTg4LjMxMiA1My44OTIzSDc2LjU3OTRWNTAuNTQ5Nkg4OC4zMTJWNTMuODkyM1pNODguMzEyIDI1LjQ4SDQ3LjE2NDNWMjIuMTM3NEg4OC4zMTJWMjUuNDhaTTg4LjMxMiAxNi42ODg5SDQ3LjE2NDNWMTMuMzQ2M0g4OC4zMTJWMTYuNjg4OVoiIGZpbGw9IndoaXRlIi8+CjwvZz4KPGRlZnM+CjxjbGlwUGF0aCBpZD0iY2xpcDAiPgo8cmVjdCB3aWR0aD0iOTYiIGhlaWdodD0iNjAuMjAwNiIgZmlsbD0id2hpdGUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAgMC41Nzc0ODQpIi8+CjwvY2xpcFBhdGg+CjwvZGVmcz4KPC9zdmc+Cg==); opacity: 0; transform: rotate3d(); } 5% { opacity: 1; } 15% { transform: rotateY(0deg); background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOTYiIGhlaWdodD0iNjEiIHZpZXdCb3g9IjAgMCA5NiA2MSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwKSI+CjxwYXRoIGQ9Ik05Mi4yODk3IDAuNTc3NDg0SDMuNzEwMzFDMS42NzEzMSAwLjU3NzQ4NCAwIDIuMjQ4NzkgMCA0LjI4Nzc5VjU3LjA2NzdDMCA1OS4xMDY3IDEuNjcxMzEgNjAuNzc4MSAzLjcxMDMxIDYwLjc3ODFIOTIuMjg5N0M5NC4zMjg3IDYwLjc3ODEgOTYgNTkuMTA2NyA5NiA1Ny4wNjc3VjQuMjg3NzlDOTYgMi4yNDg3OSA5NC4zMjg3IDAuNTc3NDg0IDkyLjI4OTcgMC41Nzc0ODRaTTM4LjMzOTggMzYuNTQ0MUMzOC4zMzk4IDM4LjAxNDggMzcuMTM2NSAzOS4yMTgyIDM1LjY2NTcgMzkuMjE4MkgzMy4xNTg4QzMyLjU5MDUgMzYuNzQ0NiAzMS4yNTM1IDM1LjAwNjUgMjguMDExMSAzNC4yMDQyTDI1LjMzNyAzMy41MzU3TDI3LjIwODkgMzEuNTMwMUMyOC42NDYyIDI5Ljk5MjUgMjkuNDgxOSAyNy43NTMgMjkuNDgxOSAyNS40MTMxQzI5LjQ4MTkgMjIuNzM5IDI4Ljg0NjggMTYuNTIxOCAyMy4wOTc1IDE2LjUyMThDMTguMTUwNCAxNi41MjE4IDE2LjM3ODggMjEuMTAxMiAxNi4zNzg4IDI1LjQxMzFDMTYuMzc4OCAyNy43NTMgMTcuMjE0NSAyOS45OTI1IDE4LjY1MTggMzEuNTMwMUwyMC41MjM3IDMzLjUzNTdMMTcuODQ5NiAzNC4yMDQyQzE0LjkwODEgMzQuOTM5NiAxMy40MDM5IDM2LjM3NjkgMTIuNzM1NCAzOS4yMTgySDEwLjIyODRDOC43NTc2NiAzOS4yMTgyIDcuNTU0MzIgMzguMDE0OCA3LjU1NDMyIDM2LjU0NDFWMTEuMDczM0M3LjU1NDMyIDkuNjAyNTUgOC43NTc2NiA4LjM5OTIxIDEwLjIyODQgOC4zOTkyMUgzNS42OTkyQzM3LjE2OTkgOC4zOTkyMSAzOC4zNzMzIDkuNjAyNTUgMzguMzczMyAxMS4wNzMzVjM2LjU0NDFIMzguMzM5OFpNNzMuMTAzMSAzNC4yNzExSDQ3LjE2NDNWMzAuOTI4NUg3My4xMDMxVjM0LjI3MTFaTTg4LjMxMiA1My44OTIzSDc2LjU3OTRWNTAuNTQ5Nkg4OC4zMTJWNTMuODkyM1pNODguMzEyIDI1LjQ4SDQ3LjE2NDNWMjIuMTM3NEg4OC4zMTJWMjUuNDhaTTg4LjMxMiAxNi42ODg5SDQ3LjE2NDNWMTMuMzQ2M0g4OC4zMTJWMTYuNjg4OVoiIGZpbGw9IndoaXRlIi8+CjwvZz4KPGRlZnM+CjxjbGlwUGF0aCBpZD0iY2xpcDAiPgo8cmVjdCB3aWR0aD0iOTYiIGhlaWdodD0iNjAuMjAwNiIgZmlsbD0id2hpdGUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAgMC41Nzc0ODQpIi8+CjwvY2xpcFBhdGg+CjwvZGVmcz4KPC9zdmc+Cg==); } 20% { transform: rotateY(90deg); background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOTYiIGhlaWdodD0iNjEiIHZpZXdCb3g9IjAgMCA5NiA2MSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwKSI+CjxwYXRoIGQ9Ik05NiAxMC4wMDM3VjQuMjg3NzlDOTYgMi4yNDg3OSA5NC4zMjg3IDAuNTc3NDg0IDkyLjI4OTcgMC41Nzc0ODRIMy43MTAzMUMxLjY3MTMxIDAuNTc3NDg0IDAgMi4yNDg3OSAwIDQuMjg3NzlWMTAuMDAzN0g5NloiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik0wIDIwLjAzMTVWNTcuMDY3OEMwIDU5LjEwNjcgMS42NzEzMSA2MC43NzgxIDMuNzEwMzEgNjAuNzc4MUg5Mi4yODk3Qzk0LjMyODcgNjAuNzc4MSA5NiA1OS4xMDY3IDk2IDU3LjA2NzhWMjAuMDMxNUgwWk04OC4yNzg2IDUzLjgyNTRINy43MjE0NVY1MC40ODI4SDg4LjI3ODZWNTMuODI1NFpNODguMjc4NiA0NS4xMzQ2SDcuNzIxNDVWNDEuNzkySDg4LjI3ODZWNDUuMTM0NloiIGZpbGw9IndoaXRlIi8+CjwvZz4KPGRlZnM+CjxjbGlwUGF0aCBpZD0iY2xpcDAiPgo8cmVjdCB3aWR0aD0iOTYiIGhlaWdodD0iNjAuMjAwNiIgZmlsbD0id2hpdGUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAgMC41Nzc0ODQpIi8+CjwvY2xpcFBhdGg+CjwvZGVmcz4KPC9zdmc+Cg==); } 25% { transform: rotateY(-15deg); background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOTYiIGhlaWdodD0iNjEiIHZpZXdCb3g9IjAgMCA5NiA2MSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwKSI+CjxwYXRoIGQ9Ik05NiAxMC4wMDM3VjQuMjg3NzlDOTYgMi4yNDg3OSA5NC4zMjg3IDAuNTc3NDg0IDkyLjI4OTcgMC41Nzc0ODRIMy43MTAzMUMxLjY3MTMxIDAuNTc3NDg0IDAgMi4yNDg3OSAwIDQuMjg3NzlWMTAuMDAzN0g5NloiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik0wIDIwLjAzMTVWNTcuMDY3OEMwIDU5LjEwNjcgMS42NzEzMSA2MC43NzgxIDMuNzEwMzEgNjAuNzc4MUg5Mi4yODk3Qzk0LjMyODcgNjAuNzc4MSA5NiA1OS4xMDY3IDk2IDU3LjA2NzhWMjAuMDMxNUgwWk04OC4yNzg2IDUzLjgyNTRINy43MjE0NVY1MC40ODI4SDg4LjI3ODZWNTMuODI1NFpNODguMjc4NiA0NS4xMzQ2SDcuNzIxNDVWNDEuNzkySDg4LjI3ODZWNDUuMTM0NloiIGZpbGw9IndoaXRlIi8+CjwvZz4KPGRlZnM+CjxjbGlwUGF0aCBpZD0iY2xpcDAiPgo8cmVjdCB3aWR0aD0iOTYiIGhlaWdodD0iNjAuMjAwNiIgZmlsbD0id2hpdGUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAgMC41Nzc0ODQpIi8+CjwvY2xpcFBhdGg+CjwvZGVmcz4KPC9zdmc+Cg==); } 30% { transform: rotateY(0deg); } 95% { opacity: 1; } 100% { background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOTYiIGhlaWdodD0iNjEiIHZpZXdCb3g9IjAgMCA5NiA2MSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwKSI+CjxwYXRoIGQ9Ik05NiAxMC4wMDM3VjQuMjg3NzlDOTYgMi4yNDg3OSA5NC4zMjg3IDAuNTc3NDg0IDkyLjI4OTcgMC41Nzc0ODRIMy43MTAzMUMxLjY3MTMxIDAuNTc3NDg0IDAgMi4yNDg3OSAwIDQuMjg3NzlWMTAuMDAzN0g5NloiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik0wIDIwLjAzMTVWNTcuMDY3OEMwIDU5LjEwNjcgMS42NzEzMSA2MC43NzgxIDMuNzEwMzEgNjAuNzc4MUg5Mi4yODk3Qzk0LjMyODcgNjAuNzc4MSA5NiA1OS4xMDY3IDk2IDU3LjA2NzhWMjAuMDMxNUgwWk04OC4yNzg2IDUzLjgyNTRINy43MjE0NVY1MC40ODI4SDg4LjI3ODZWNTMuODI1NFpNODguMjc4NiA0NS4xMzQ2SDcuNzIxNDVWNDEuNzkySDg4LjI3ODZWNDUuMTM0NloiIGZpbGw9IndoaXRlIi8+CjwvZz4KPGRlZnM+CjxjbGlwUGF0aCBpZD0iY2xpcDAiPgo8cmVjdCB3aWR0aD0iOTYiIGhlaWdodD0iNjAuMjAwNiIgZmlsbD0id2hpdGUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAgMC41Nzc0ODQpIi8+CjwvY2xpcFBhdGg+CjwvZGVmcz4KPC9zdmc+Cg==); border-radius: 0; -webkit-backdrop-filter: none; backdrop-filter: none; background-color: transparent; opacity: 0; } } :host .reticle { box-sizing: border-box; position: relative; width: 100%; height: 100%; border-radius: 50%; background-color: rgba(120, 120, 128, 0.2); background-position: center; background-size: contain; background-repeat: no-repeat; -webkit-backdrop-filter: blur(27px); backdrop-filter: blur(27px); transition: all 0.4s ease; } :host .reticle__cursor { box-sizing: border-box; display: block; position: absolute; width: 50%; height: 50%; left: 25%; top: 25%; border-radius: 50%; border-color: transparent; border-style: solid; border-width: 4px; transition: all 125ms cubic-bezier(0.42, 0.01, 0.35, 1.74); background-position: center; background-size: contain; background-repeat: no-repeat; } :host .reticle__cursor::before { content: ""; position: absolute; width: 4px; height: 4px; top: 50%; left: 50%; transition: all 0.2s ease; transform-origin: center; transform: translate(-50%, -50%); background-color: #ffffff; border-radius: 50%; } :host .reticle__cursor::after { content: ""; position: absolute; top: -4px; left: -4px; width: calc(50% + 4px); height: calc(50% + 4px); display: block; border-left-width: 4px; border-left-style: solid; border-left-color: #ffffff; border-top-width: 4px; border-top-style: solid; border-top-color: #ffffff; border-top-left-radius: 100%; transition: all 0.2s ease; opacity: 0; filter: drop-shadow(0 0 4px rgba(0, 0, 0, 0.1)); } :host .reticle__el { box-sizing: border-box; } :host .reticle__done { display: block; position: absolute; width: 50%; height: 50%; left: 25%; top: 25%; transition: all 125ms cubic-bezier(0.42, 0.01, 0.35, 1.74); transform-origin: center; transform: rotate(15deg) translateY(-5%); opacity: 0; } :host .reticle.is-default ~ .label[data-message=is-default], :host .reticle.is-detection ~ .label[data-message=is-detection], :host .reticle.is-classification ~ .label[data-message=is-classification], :host .reticle.is-done ~ .label[data-message=is-done], :host .reticle.is-done-all ~ .label[data-message=is-done-all], :host .reticle.is-flip ~ .label[data-message=is-flip], :host .reticle.is-error-move-farther ~ .label[data-message=is-error-move-farther], :host .reticle.is-error-move-closer ~ .label[data-message=is-error-move-closer], :host .reticle.is-error-adjust-angle ~ .label[data-message=is-error-adjust-angle] { opacity: 1; visibility: visible; margin: 8px 0 0 0; } :host .reticle.is-default .reticle__cursor { animation: reticle-rotation 1000ms ease-in-out infinite; border-style: none; } :host .reticle.is-default .reticle__el { position: absolute; display: block; width: 50%; height: 50%; overflow: hidden; } :host .reticle.is-default .reticle__el::after, :host .reticle.is-default .reticle__el::before { content: ""; position: absolute; display: block; width: 100%; height: 100%; } :host .reticle.is-default .reticle__el:nth-child(1) { top: 0; left: 0; } :host .reticle.is-default .reticle__el:nth-child(1)::after, :host .reticle.is-default .reticle__el:nth-child(1)::before { top: 0; left: 0; border-top: 4px solid rgba(255, 255, 255, 0.5); border-left: 4px solid rgba(255, 255, 255, 0.5); border-top-left-radius: 100%; transform-origin: bottom right; } :host .reticle.is-default .reticle__el:nth-child(1)::after { transform: rotate(67.5deg); } :host .reticle.is-default .reticle__el:nth-child(1)::before { transform: rotate(-67.5deg); } :host .reticle.is-default .reticle__el:nth-child(2) { top: 0; right: 0; } :host .reticle.is-default .reticle__el:nth-child(2)::after, :host .reticle.is-default .reticle__el:nth-child(2)::before { top: 0; right: 0; border-top: 4px solid rgba(255, 255, 255, 0.5); border-right: 4px solid rgba(255, 255, 255, 0.5); border-top-right-radius: 100%; transform-origin: bottom left; } :host .reticle.is-default .reticle__el:nth-child(2)::after { transform: rotate(67.5deg); } :host .reticle.is-default .reticle__el:nth-child(2)::before { transform: rotate(-67.5deg); } :host .reticle.is-default .reticle__el:nth-child(3) { bottom: 0; right: 0; } :host .reticle.is-default .reticle__el:nth-child(3)::after, :host .reticle.is-default .reticle__el:nth-child(3)::before { bottom: 0; right: 0; transform-origin: top left; border-bottom: 4px solid rgba(255, 255, 255, 0.5); border-right: 4px solid rgba(255, 255, 255, 0.5); border-bottom-right-radius: 100%; } :host .reticle.is-default .reticle__el:nth-child(3)::after { transform: rotate(67.5deg); } :host .reticle.is-default .reticle__el:nth-child(3)::before { transform: rotate(-67.5deg); } :host .reticle.is-default .reticle__el:nth-child(4) { bottom: 0; left: 0; } :host .reticle.is-default .reticle__el:nth-child(4)::after, :host .reticle.is-default .reticle__el:nth-child(4)::before { bottom: 0; left: 0; border-bottom: 4px solid rgba(255, 255, 255, 0.5); border-left: 4px solid rgba(255, 255, 255, 0.5); border-bottom-left-radius: 100%; transform-origin: top right; } :host .reticle.is-default .reticle__el:nth-child(4)::after { transform: rotate(67.5deg); } :host .reticle.is-default .reticle__el:nth-child(4)::before { transform: rotate(-67.5deg); } :host .reticle.is-detection .reticle__cursor { border-color: rgba(255, 255, 255, 0.75); } :host .reticle.is-classification .reticle__cursor { animation: reticle-rotation 250ms cubic-bezier(0.4, 0.02, 1, 1) infinite; border-style: solid; border-color: rgba(255, 255, 255, 0.25); } :host .reticle.is-classification .reticle__cursor::after { opacity: 1; } :host .reticle.is-flip { animation: reticle-horizontal-flip 3.5s cubic-bezier(0.4, 0.02, 1, 1) both; } :host .reticle.is-flip .reticle__cursor { transform-style: preserve-3d; animation: reticle-cursor-horizontal-flip 3.5s cubic-bezier(0.4, 0.02, 1, 1) both; } :host .reticle.is-done { display: none; } :host .reticle.is-done-all { background-color: #ffffff; box-shadow: 0px 2px 24px rgba(0, 0, 0, 0.1), 0px 2px 8px rgba(0, 0, 0, 0.05); transition: all 125ms cubic-bezier(0.4, 0.02, 1, 1); } :host .reticle.is-done-all .reticle__done { transform: rotate(0) translateY(0); opacity: 1; } :host .reticle.is-done-all .reticle__cursor::before { width: 150vw; height: 150vh; opacity: 0; transition: all 200ms ease; } :host .reticle.is-error-move-farther { background-color: rgba(255, 45, 85, 0.5); } :host .reticle.is-error-move-farther .reticle__cursor { border-color: rgba(255, 255, 255, 0.75); width: 40%; height: 40%; left: 30%; top: 30%; transition: all 125ms cubic-bezier(0.42, 0.01, 0.35, 1.74); } :host .reticle.is-error-move-closer { background-color: rgba(255, 45, 85, 0.5); } :host .reticle.is-error-move-closer .reticle__cursor { border-color: rgba(255, 255, 255, 0.75); width: 60%; height: 60%; left: 20%; top: 20%; transition: all 125ms cubic-bezier(0.42, 0.01, 0.35, 1.74); } :host .reticle.is-error-adjust-angle { background-color: rgba(255, 45, 85, 0.5); } :host .reticle.is-error-adjust-angle .reticle__cursor { border-color: rgba(255, 255, 255, 0.75); animation: reticle-horizontal-shrink 600ms cubic-bezier(0.42, 0.01, 0.35, 1.74); } *::after, *::before { box-sizing: border-box; } :host .message { display: block; position: absolute; top: 100%; left: 50%; transform-origin: center; transform: translate(-50%, 0); margin: 8px 0 0 0; margin-top: 20px; padding: 8px 12px; font-weight: 500; text-align: center; text-shadow: 0px 1px 4px rgba(0, 0, 0, 0.1); white-space: nowrap; color: #fff; background-color: rgba(60, 60, 67, 0.3); -webkit-backdrop-filter: blur(27px); backdrop-filter: blur(27px); border-radius: 8px; } :host .reticle-container { position: absolute; top: 50%; left: 50%; width: 96px; height: 96px; transform-origin: center; transform: translate(-50%, -50%); perspective: 600px; } :host button.modal-action-button { width: 126px; height: 32px; border-radius: 0; border: 0; background: #48B2E8; color: #ffffff; cursor: pointer; }