Update MON
This commit is contained in:
@@ -15,7 +15,7 @@ namespace MP.Data.DatabaseModels
|
||||
public string CodArticolo { get; set; }
|
||||
public string Disegno { get; set; }
|
||||
public int? NumPezzi { get; set; }
|
||||
public decimal? Tcassegnato { get; set; }
|
||||
public decimal? TCAssegnato { get; set; }
|
||||
public DateTime? DataInizioOdl { get; set; }
|
||||
public string Semaforo { get; set; }
|
||||
public int? IdxStato { get; set; }
|
||||
@@ -26,11 +26,11 @@ namespace MP.Data.DatabaseModels
|
||||
public decimal? TempoOn { get; set; }
|
||||
public decimal? TempoAuto { get; set; }
|
||||
public decimal? TempoRun { get; set; }
|
||||
public decimal? Tcmedio { get; set; }
|
||||
public decimal? Tclav { get; set; }
|
||||
public decimal? Tceff { get; set; }
|
||||
public decimal? TcmedioRt { get; set; }
|
||||
public decimal? TclavRt { get; set; }
|
||||
public decimal? TceffRt { get; set; }
|
||||
public decimal? TCMedio { get; set; }
|
||||
public decimal? TCLav { get; set; }
|
||||
public decimal? TCEff { get; set; }
|
||||
public decimal? TCMedioRt { get; set; }
|
||||
public decimal? TCLavRt { get; set; }
|
||||
public decimal? TCEffRt { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -153,37 +153,37 @@ namespace MP.Data
|
||||
.HasMaxLength(50)
|
||||
.HasDefaultValueSql("('')");
|
||||
|
||||
entity.Property(e => e.Tcassegnato)
|
||||
entity.Property(e => e.TCAssegnato)
|
||||
.HasColumnType("decimal(18, 8)")
|
||||
.HasColumnName("TCAssegnato")
|
||||
.HasDefaultValueSql("((1))");
|
||||
|
||||
entity.Property(e => e.Tceff)
|
||||
entity.Property(e => e.TCEff)
|
||||
.HasColumnType("decimal(18, 8)")
|
||||
.HasColumnName("TCEff")
|
||||
.HasDefaultValueSql("((0))");
|
||||
|
||||
entity.Property(e => e.TceffRt)
|
||||
entity.Property(e => e.TCEffRt)
|
||||
.HasColumnType("decimal(18, 8)")
|
||||
.HasColumnName("TCEffRT")
|
||||
.HasDefaultValueSql("((0))");
|
||||
|
||||
entity.Property(e => e.Tclav)
|
||||
entity.Property(e => e.TCLav)
|
||||
.HasColumnType("decimal(18, 8)")
|
||||
.HasColumnName("TCLav")
|
||||
.HasDefaultValueSql("((0))");
|
||||
|
||||
entity.Property(e => e.TclavRt)
|
||||
entity.Property(e => e.TCLavRt)
|
||||
.HasColumnType("decimal(18, 8)")
|
||||
.HasColumnName("TCLavRT")
|
||||
.HasDefaultValueSql("((0))");
|
||||
|
||||
entity.Property(e => e.Tcmedio)
|
||||
entity.Property(e => e.TCMedio)
|
||||
.HasColumnType("decimal(18, 8)")
|
||||
.HasColumnName("TCMedio")
|
||||
.HasDefaultValueSql("((0))");
|
||||
|
||||
entity.Property(e => e.TcmedioRt)
|
||||
entity.Property(e => e.TCMedioRt)
|
||||
.HasColumnType("decimal(18, 8)")
|
||||
.HasColumnName("TCMedioRT")
|
||||
.HasDefaultValueSql("((0))");
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
namespace MP.Mon.Data
|
||||
{
|
||||
public class WeatherForecast
|
||||
{
|
||||
public DateTime Date { get; set; }
|
||||
|
||||
public int TemperatureC { get; set; }
|
||||
|
||||
public int TemperatureF => 32 + (int)(TemperatureC / 0.5556);
|
||||
|
||||
public string? Summary { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -1,20 +0,0 @@
|
||||
namespace MP.Mon.Data
|
||||
{
|
||||
public class WeatherForecastService
|
||||
{
|
||||
private static readonly string[] Summaries = new[]
|
||||
{
|
||||
"Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching"
|
||||
};
|
||||
|
||||
public Task<WeatherForecast[]> GetForecastAsync(DateTime startDate)
|
||||
{
|
||||
return Task.FromResult(Enumerable.Range(1, 5).Select(index => new WeatherForecast
|
||||
{
|
||||
Date = startDate.AddDays(index),
|
||||
TemperatureC = Random.Shared.Next(-20, 55),
|
||||
Summary = Summaries[Random.Shared.Next(Summaries.Length)]
|
||||
}).ToArray());
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -6,6 +6,14 @@
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Content Remove="compilerconfig.json" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<None Include="compilerconfig.json" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
|
||||
<PackageReference Include="NLog" Version="4.7.15" />
|
||||
|
||||
@@ -1,18 +0,0 @@
|
||||
@page "/counter"
|
||||
|
||||
<PageTitle>Counter</PageTitle>
|
||||
|
||||
<h1>Counter</h1>
|
||||
|
||||
<p role="status">Current count: @currentCount</p>
|
||||
|
||||
<button class="btn btn-primary" @onclick="IncrementCount">Click me</button>
|
||||
|
||||
@code {
|
||||
private int currentCount = 0;
|
||||
|
||||
private void IncrementCount()
|
||||
{
|
||||
currentCount++;
|
||||
}
|
||||
}
|
||||
@@ -1,48 +0,0 @@
|
||||
@page "/fetchdata"
|
||||
|
||||
<PageTitle>Weather forecast</PageTitle>
|
||||
|
||||
@using MP.Mon.Data
|
||||
@inject WeatherForecastService ForecastService
|
||||
|
||||
<h1>Weather forecast</h1>
|
||||
|
||||
<p>This component demonstrates fetching data from a service.</p>
|
||||
|
||||
@if (forecasts == null)
|
||||
{
|
||||
<p><em>Loading...</em></p>
|
||||
}
|
||||
else
|
||||
{
|
||||
<table class="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Date</th>
|
||||
<th>Temp. (C)</th>
|
||||
<th>Temp. (F)</th>
|
||||
<th>Summary</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach (var forecast in forecasts)
|
||||
{
|
||||
<tr>
|
||||
<td>@forecast.Date.ToShortDateString()</td>
|
||||
<td>@forecast.TemperatureC</td>
|
||||
<td>@forecast.TemperatureF</td>
|
||||
<td>@forecast.Summary</td>
|
||||
</tr>
|
||||
}
|
||||
</tbody>
|
||||
</table>
|
||||
}
|
||||
|
||||
@code {
|
||||
private WeatherForecast[]? forecasts;
|
||||
|
||||
protected override async Task OnInitializedAsync()
|
||||
{
|
||||
forecasts = await ForecastService.GetForecastAsync(DateTime.Now);
|
||||
}
|
||||
}
|
||||
@@ -6,12 +6,7 @@
|
||||
|
||||
|
||||
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<h1>Hello, world!</h1>
|
||||
|
||||
Welcome to your new app.
|
||||
</div>
|
||||
<div class="row statusMap mx-1 my-1">
|
||||
@if (ListMSE == null)
|
||||
{
|
||||
<div class="col-12">
|
||||
@@ -28,11 +23,70 @@
|
||||
}
|
||||
else
|
||||
{
|
||||
int currIdx = 0;
|
||||
foreach (var macchina in ListMSE)
|
||||
{
|
||||
<div class="col">
|
||||
<b>@macchina.CodMacchina</b>
|
||||
<div class="col px-0 pe-1">
|
||||
<div class="@cssStatus(macchina.Semaforo) p-1">
|
||||
<div class="row mb-1">
|
||||
<div class="col-12">
|
||||
<div class="ui-title text-uppercase">@macchina.Nome</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row pt-0 pb-2 px-1 fontSmall">
|
||||
<div class="col-4 pe-0">Art.</div>
|
||||
<div class="col-8 ps-0 text-right ui-art">@macchina.CodArticolo</div>
|
||||
</div>
|
||||
<div class="row pt-0 pb-2 px-1 fontSmall">
|
||||
<div class="col-9 text-uppercase"><b>@macchina.DescrizioneStato</b></div>
|
||||
<div class="col-3 ps-0 text-right">@($"{macchina.Durata:0.00}")</div>
|
||||
@*<div class="col-6 pe-0">OEE</div>
|
||||
<div class="col-6 ps-0 text-right">xx%</div>*@
|
||||
<div class="col-4 pe-0">T.Ciclo</div>
|
||||
<div class="col-4 ps-0 text-right">std: @getMinSec(macchina.TCAssegnato)</div>
|
||||
<div class="col-4 ps-0 text-right">act: @getMinSec(macchina.TCLavRt)</div>
|
||||
<div class="col-6 pe-0">Pezzi<sub>(prod/ord)</sub></div>
|
||||
<div class="col-6 ps-0 text-right">@macchina.PezziProd / @macchina.NumPezzi</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="@cssComStatus(macchina.Semaforo, macchina.LastUpdate) p-1">
|
||||
<div class="row fontSmaller mt-1">
|
||||
<div class="col-12">
|
||||
<div class="text-right ui-footer px-2">
|
||||
<div class="row">
|
||||
@if (showComErr(macchina.LastUpdate))
|
||||
{
|
||||
<div class="col text-warning">
|
||||
<b>C.101</b>
|
||||
</div>
|
||||
}
|
||||
<div class="col text-end">
|
||||
@macchina.LastUpdate
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
currIdx++;
|
||||
if (currIdx >= maxCol)
|
||||
{
|
||||
@*</div>
|
||||
<div class="row statusMap mx-1 my-1">*@
|
||||
currIdx = 0;
|
||||
@((MarkupString)"</div><div class=\"row statusMap mx-1 my-1\">")
|
||||
;
|
||||
}
|
||||
}
|
||||
// controllo se devo "chiudere riga...
|
||||
int currNum = (currIdx % maxCol);
|
||||
while (currNum < (maxCol))
|
||||
{
|
||||
@((MarkupString)"<div class=\"col px-0\"> </div>")
|
||||
;
|
||||
currNum++;
|
||||
|
||||
}
|
||||
}
|
||||
</div>
|
||||
|
||||
@@ -24,12 +24,28 @@ namespace MP.Mon.Pages
|
||||
{
|
||||
protected List<MappaStatoExpl>? ListMSE = null;
|
||||
|
||||
protected int keepAliveMin = 5; // leggere da conf?
|
||||
|
||||
protected int maxCol = 6; // leggere da conf?
|
||||
|
||||
protected bool doAnimate = true; // leggere da conf?
|
||||
|
||||
//protected string baseCss = "sem";
|
||||
//protected string baseCss = "semBlink";
|
||||
protected string baseCss = "";
|
||||
|
||||
protected override async Task OnInitializedAsync()
|
||||
{
|
||||
setupConf();
|
||||
await reloadData();
|
||||
//return base.OnInitializedAsync();
|
||||
}
|
||||
|
||||
private void setupConf()
|
||||
{
|
||||
baseCss = doAnimate ? "semBlink" : "sem";
|
||||
}
|
||||
|
||||
[Inject]
|
||||
protected MpDataService MMDataService { get; set; }
|
||||
|
||||
@@ -38,5 +54,45 @@ namespace MP.Mon.Pages
|
||||
ListMSE = await MMDataService.MseGetAll();
|
||||
}
|
||||
|
||||
private string cssStatus(string codSemaforo)
|
||||
{
|
||||
return $"{baseCss}{codSemaforo.Substring(1,2)}";
|
||||
}
|
||||
|
||||
private string cssComStatus(string semaforo, DateTime? lastUpdateN)
|
||||
{
|
||||
DateTime lastUpdate = lastUpdateN.HasValue ? (DateTime)lastUpdateN : DateTime.Now.AddHours(-1);
|
||||
string answ = cssStatus(semaforo);
|
||||
if (DateTime.Now.Subtract(lastUpdate).TotalSeconds > (keepAliveMin * 60 / 2))
|
||||
{
|
||||
answ = $"{baseCss}Ro";
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
|
||||
private bool showComErr(DateTime? lastUpdateN)
|
||||
{
|
||||
DateTime lastUpdate = lastUpdateN.HasValue ? (DateTime)lastUpdateN : DateTime.Now.AddHours(-1);
|
||||
bool answ = false;
|
||||
if (DateTime.Now.Subtract(lastUpdate).TotalSeconds > (keepAliveMin * 60 / 2))
|
||||
{
|
||||
answ = true;
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
|
||||
private string getMinSec(decimal? currTimeMin)
|
||||
{
|
||||
string answ = "nd";
|
||||
TimeSpan tSpan = new TimeSpan(0);
|
||||
try
|
||||
{
|
||||
tSpan = TimeSpan.FromMinutes((double)currTimeMin);
|
||||
answ = tSpan.ToString("mm:ss");
|
||||
}
|
||||
catch
|
||||
{ }
|
||||
return answ;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -29,8 +29,6 @@ builder.Services.AddSingleton<IConnectionMultiplexer>(redisMultiplexer);
|
||||
builder.Services.AddSingleton<MpDataService>();
|
||||
//builder.Services.AddScoped<MessageService>();
|
||||
|
||||
builder.Services.AddSingleton<WeatherForecastService>();
|
||||
|
||||
var app = builder.Build();
|
||||
|
||||
// Configure the HTTP request pipeline.
|
||||
|
||||
@@ -3,16 +3,22 @@
|
||||
<PageTitle>MP.Mon</PageTitle>
|
||||
|
||||
<div class="page">
|
||||
<div class="sidebar">
|
||||
<NavMenu />
|
||||
</div>
|
||||
|
||||
<main>
|
||||
<div class="top-row px-4">
|
||||
<a href="https://docs.microsoft.com/aspnet/" target="_blank">About</a>
|
||||
<div class="top-row px-4 justify-content-between">
|
||||
<div class="px-2">
|
||||
<img class="logoImg img-fluid" src="images/LogoMapo.png" width="80" />
|
||||
<span class="mainHead p-3"><b><span style="color: #DEDEDE;">MP MON</span>itor</b></span>
|
||||
</div>
|
||||
<div class="px-2">
|
||||
<span id="text-white text-right">
|
||||
@($"{DateTime.Now:dddd dd MMMM yyyy, HH:mm}")
|
||||
</span>
|
||||
<img class="logoImg img-fluid" src="images/logoCliente.png" width="32" />
|
||||
EgalWare
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<article class="content px-4">
|
||||
<article class="content p-0">
|
||||
@Body
|
||||
</article>
|
||||
|
||||
|
||||
@@ -8,19 +8,19 @@ main {
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.sidebar,.sidebarSmall {
|
||||
background-image: linear-gradient(180deg, rgb(5, 39, 103) 20%, #3aa6ff 90%);
|
||||
}
|
||||
|
||||
.top-row {
|
||||
background-color: #f7f7f7;
|
||||
border-bottom: 1px solid #d6d5d5;
|
||||
justify-content: flex-end;
|
||||
height: 3.5rem;
|
||||
background-color: #000000;
|
||||
/*border-bottom: 1px solid #696969;*/
|
||||
color: #696969;
|
||||
font-size: 1.4em;
|
||||
height: 3rem;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
/*justify-content: space-evenly;
|
||||
display: flex;*/
|
||||
justify-content: space-evenly;
|
||||
}
|
||||
|
||||
.mainHead{
|
||||
font-size: 1.7rem;
|
||||
}
|
||||
|
||||
.top-row ::deep a,
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
[
|
||||
{
|
||||
"outputFile": "wwwroot/css/site.css",
|
||||
"inputFile": "wwwroot/css/site.less"
|
||||
},
|
||||
{
|
||||
"outputFile": "wwwroot/css/fonts.css",
|
||||
"inputFile": "wwwroot/css/fonts.less"
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,71 @@
|
||||
{
|
||||
"compilers": {
|
||||
"less": {
|
||||
"autoPrefix": "",
|
||||
"cssComb": "none",
|
||||
"ieCompat": true,
|
||||
"math": null,
|
||||
"strictMath": false,
|
||||
"strictUnits": false,
|
||||
"relativeUrls": true,
|
||||
"rootPath": "",
|
||||
"sourceMapRoot": "",
|
||||
"sourceMapBasePath": "",
|
||||
"sourceMap": false
|
||||
},
|
||||
"sass": {
|
||||
"autoPrefix": "",
|
||||
"loadPaths": "",
|
||||
"style": "expanded",
|
||||
"relativeUrls": true,
|
||||
"sourceMap": false
|
||||
},
|
||||
"nodesass": {
|
||||
"autoPrefix": "",
|
||||
"includePath": "",
|
||||
"indentType": "space",
|
||||
"indentWidth": 2,
|
||||
"outputStyle": "nested",
|
||||
"precision": 5,
|
||||
"relativeUrls": true,
|
||||
"sourceMapRoot": "",
|
||||
"lineFeed": "",
|
||||
"sourceMap": false
|
||||
},
|
||||
"stylus": {
|
||||
"sourceMap": false
|
||||
},
|
||||
"babel": {
|
||||
"sourceMap": false
|
||||
},
|
||||
"coffeescript": {
|
||||
"bare": false,
|
||||
"runtimeMode": "node",
|
||||
"sourceMap": false
|
||||
},
|
||||
"handlebars": {
|
||||
"root": "",
|
||||
"noBOM": false,
|
||||
"name": "",
|
||||
"namespace": "",
|
||||
"knownHelpersOnly": false,
|
||||
"forcePartial": false,
|
||||
"knownHelpers": [],
|
||||
"commonjs": "",
|
||||
"amd": false,
|
||||
"sourceMap": false
|
||||
}
|
||||
},
|
||||
"minifiers": {
|
||||
"css": {
|
||||
"enabled": true,
|
||||
"termSemicolons": true,
|
||||
"gzip": false
|
||||
},
|
||||
"javascript": {
|
||||
"enabled": true,
|
||||
"termSemicolons": true,
|
||||
"gzip": false
|
||||
}
|
||||
}
|
||||
}
|
||||
+161
-181
@@ -15,10 +15,17 @@ display-4 {
|
||||
font-family: 'Lato', sans-serif;
|
||||
}
|
||||
html,
|
||||
body {
|
||||
height: 100%;
|
||||
}
|
||||
html,
|
||||
body {
|
||||
/*font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;*/
|
||||
font-family: 'Roboto Condensed', sans-serif;
|
||||
line-height: 1.3;
|
||||
background-image: linear-gradient(180deg, #010816 20%, #3aa6ff 90%);
|
||||
background-size: auto 100%;
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
h1:focus {
|
||||
outline: none;
|
||||
@@ -53,89 +60,6 @@ a,
|
||||
.striked {
|
||||
text-decoration: line-through;
|
||||
}
|
||||
/* Gestione dropdown menu x week planner */
|
||||
.dropdown {
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
}
|
||||
.dropdown:hover .dropdown-content,
|
||||
.dropdown:hover .dropdown-content-top,
|
||||
.dropdown:hover .dropdown-content-left,
|
||||
.dropdown:hover .dropdown-content-top-left {
|
||||
display: block;
|
||||
}
|
||||
.dropdown-content {
|
||||
display: none;
|
||||
position: absolute;
|
||||
left: -10em;
|
||||
min-width: 8em;
|
||||
box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.2);
|
||||
z-index: 1;
|
||||
}
|
||||
.dropdown-content .a {
|
||||
color: black;
|
||||
padding: 12px 16px;
|
||||
text-decoration: none;
|
||||
display: block;
|
||||
}
|
||||
.dropdown-content .a:hover {
|
||||
background-color: #ddd;
|
||||
}
|
||||
.dropdown-content-top {
|
||||
display: none;
|
||||
position: absolute;
|
||||
min-width: 8em;
|
||||
box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.2);
|
||||
z-index: 1;
|
||||
top: -13.5em;
|
||||
left: -10em;
|
||||
}
|
||||
.dropdown-content-top .a {
|
||||
color: black;
|
||||
padding: 12px 16px;
|
||||
text-decoration: none;
|
||||
display: block;
|
||||
}
|
||||
.dropdown-content-top .a:hover {
|
||||
background-color: #ddd;
|
||||
}
|
||||
.dropdown-content-left {
|
||||
display: none;
|
||||
position: absolute;
|
||||
left: -10em;
|
||||
min-width: 8em;
|
||||
box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.2);
|
||||
z-index: 1;
|
||||
left: -24em;
|
||||
}
|
||||
.dropdown-content-left .a {
|
||||
color: black;
|
||||
padding: 12px 16px;
|
||||
text-decoration: none;
|
||||
display: block;
|
||||
}
|
||||
.dropdown-content-left .a:hover {
|
||||
background-color: #ddd;
|
||||
}
|
||||
.dropdown-content-top-left {
|
||||
display: none;
|
||||
position: absolute;
|
||||
left: -10em;
|
||||
min-width: 8em;
|
||||
box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.2);
|
||||
z-index: 1;
|
||||
top: -13.5em;
|
||||
left: -24em;
|
||||
}
|
||||
.dropdown-content-top-left .a {
|
||||
color: black;
|
||||
padding: 12px 16px;
|
||||
text-decoration: none;
|
||||
display: block;
|
||||
}
|
||||
.dropdown-content-top-left .a:hover {
|
||||
background-color: #ddd;
|
||||
}
|
||||
.textTrim {
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
@@ -216,109 +140,165 @@ a,
|
||||
.blazor-error-boundary::after {
|
||||
content: "An error has occurred.";
|
||||
}
|
||||
/*------------------------------------------------------------------
|
||||
[ Shortcuts / .shortcuts ]
|
||||
*/
|
||||
.shortcuts {
|
||||
text-align: center;
|
||||
/* Gestione specifica oggetti MON*/
|
||||
/* MAIN: gestione layout dinamico mappa... */
|
||||
.fontSmall {
|
||||
font-size: 0.75em;
|
||||
}
|
||||
.shortcuts .shortcut-icon {
|
||||
font-size: 2rem;
|
||||
.fontSmaller {
|
||||
font-size: 0.6em;
|
||||
}
|
||||
.shortcuts .shortcut {
|
||||
min-width: 9rem;
|
||||
min-height: 5rem;
|
||||
display: inline-block;
|
||||
padding: 2rem/3 0;
|
||||
margin: 0 2px 1em;
|
||||
vertical-align: top;
|
||||
text-decoration: none;
|
||||
background: #F3F3F3;
|
||||
background-image: -webkit-gradient(linear, left 0%, left 100%, from(#ffffff), to(#eeeeee));
|
||||
background-image: -webkit-linear-gradient(top, #ffffff, 0%, #eeeeee, 100%);
|
||||
background-image: -moz-linear-gradient(top, #ffffff 0%, #eeeeee 100%);
|
||||
background-image: linear-gradient(to bottom, #ffffff 0%, #eeeeee 100%);
|
||||
background-repeat: repeat-x;
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffeeeeee', GradientType=0);
|
||||
border: 1px solid #ddd;
|
||||
box-sizing: border-box;
|
||||
border-radius: 1rem/2;
|
||||
.statusMap {
|
||||
background: #222;
|
||||
}
|
||||
.shortcuts .shortcut-sm {
|
||||
min-width: 4.5rem;
|
||||
min-height: 3rem;
|
||||
display: inline-block;
|
||||
padding: 1rem/4 0;
|
||||
margin: 0 2px 1em;
|
||||
vertical-align: top;
|
||||
text-decoration: none;
|
||||
background: #F3F3F3;
|
||||
background-image: -webkit-gradient(linear, left 0%, left 100%, from(#ffffff), to(#eeeeee));
|
||||
background-image: -webkit-linear-gradient(top, #ffffff, 0%, #eeeeee, 100%);
|
||||
background-image: -moz-linear-gradient(top, #ffffff 0%, #eeeeee 100%);
|
||||
background-image: linear-gradient(to bottom, #ffffff 0%, #eeeeee 100%);
|
||||
background-repeat: repeat-x;
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffeeeeee', GradientType=0);
|
||||
border: 1px solid #ddd;
|
||||
box-sizing: border-box;
|
||||
border-radius: 1rem/2;
|
||||
}
|
||||
.shortcuts .shortcut .shortcut-icon {
|
||||
width: 100%;
|
||||
margin-top: 0;
|
||||
margin-bottom: 0;
|
||||
font-size: 2rem;
|
||||
color: #333;
|
||||
}
|
||||
.shortcuts .shortcut-sm .shortcut-icon {
|
||||
width: 100%;
|
||||
margin-top: 0;
|
||||
margin-bottom: 0;
|
||||
font-size: 2rem;
|
||||
color: #333;
|
||||
}
|
||||
.shortcuts .shortcut:hover {
|
||||
background: #E8E8E8;
|
||||
background-image: -webkit-gradient(linear, left 0%, left 100%, from(#fafafa), to(#e1e1e1));
|
||||
background-image: -webkit-linear-gradient(top, #fafafa, 0%, #e1e1e1, 100%);
|
||||
background-image: -moz-linear-gradient(top, #fafafa 0%, #e1e1e1 100%);
|
||||
background-image: linear-gradient(to bottom, #fafafa 0%, #e1e1e1 100%);
|
||||
background-repeat: repeat-x;
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffafafa', endColorstr='#ffe1e1e1', GradientType=0);
|
||||
}
|
||||
.shortcuts .shortcut-sm:hover {
|
||||
background: #E8E8E8;
|
||||
background-image: -webkit-gradient(linear, left 0%, left 100%, from(#fafafa), to(#e1e1e1));
|
||||
background-image: -webkit-linear-gradient(top, #fafafa, 0%, #e1e1e1, 100%);
|
||||
background-image: -moz-linear-gradient(top, #fafafa 0%, #e1e1e1 100%);
|
||||
background-image: linear-gradient(to bottom, #fafafa 0%, #e1e1e1 100%);
|
||||
background-repeat: repeat-x;
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffafafa', endColorstr='#ffe1e1e1', GradientType=0);
|
||||
}
|
||||
.shortcuts .shortcut:active {
|
||||
box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
|
||||
}
|
||||
.shortcuts .shortcut-sm:active {
|
||||
box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
|
||||
}
|
||||
.shortcuts .shortcut:hover .shortcut-icon {
|
||||
color: #C93;
|
||||
}
|
||||
.shortcuts .shortcut-sm:hover .shortcut-icon {
|
||||
color: #666;
|
||||
}
|
||||
.shortcuts .shortcut-label {
|
||||
display: block;
|
||||
margin-top: 0.75em;
|
||||
.statusMap .ui-title,
|
||||
.statusMap .ui-li-aside {
|
||||
font-weight: 400;
|
||||
color: #666;
|
||||
text-transform: uppercase;
|
||||
font-size: 2.5em;
|
||||
line-height: 1.1em;
|
||||
color: #DEDEDE;
|
||||
text-shadow: 2px 2px 4px #000;
|
||||
text-align: center;
|
||||
background: linear-gradient(270deg, rgba(20, 20, 20, 0.7), rgba(100, 100, 100, 0.7), rgba(20, 20, 20, 0.7));
|
||||
}
|
||||
@media (max-width: 640px) {
|
||||
.shortcuts .shortcut {
|
||||
min-width: 8rem;
|
||||
min-height: 4rem;
|
||||
.statusMap .ui-footer {
|
||||
color: #CDCDCD;
|
||||
background: linear-gradient(270deg, rgba(10, 10, 10, 0.7), rgba(80, 80, 80, 0.7), rgba(10, 10, 10, 0.7));
|
||||
}
|
||||
/* END: gestione layout dinamico mappa... */
|
||||
/* area semafori*/
|
||||
.semBlinkVe,
|
||||
.semFixVe,
|
||||
.semFixVe_b,
|
||||
.semVe,
|
||||
.semVe_b {
|
||||
background: #009036;
|
||||
background: rgba(0, 255, 80, 0.6);
|
||||
color: #FFFFAA;
|
||||
}
|
||||
.semBlinkGr,
|
||||
.semFixGr,
|
||||
.semFixGr_b,
|
||||
.semGr,
|
||||
.semGr_b {
|
||||
background-color: #bcbcbc;
|
||||
background: rgba(180, 180, 180, 0.6);
|
||||
}
|
||||
.semGi {
|
||||
text-align: left;
|
||||
background: #8a8d27;
|
||||
background: rgba(230, 210, 0, 0.6);
|
||||
padding: 0px 4px 0px 4px;
|
||||
color: #000;
|
||||
}
|
||||
.semGi_b,
|
||||
.semFixGi,
|
||||
.semFixGi_b {
|
||||
text-align: left;
|
||||
background: #f9ff18;
|
||||
background: rgba(255, 255, 0, 0.8);
|
||||
padding: 0px 4px 0px 4px;
|
||||
color: #333;
|
||||
}
|
||||
.semBl {
|
||||
text-align: left;
|
||||
background: #000E7A;
|
||||
background: rgba(0, 5, 200, 0.6);
|
||||
padding: 0px 4px 0px 4px;
|
||||
color: #959500;
|
||||
}
|
||||
.semBl_b,
|
||||
.semFixBl,
|
||||
.semFixBl_b {
|
||||
text-align: left;
|
||||
background: #243FFF;
|
||||
background: rgba(60, 80, 255, 0.8);
|
||||
padding: 0px 4px 0px 4px;
|
||||
color: #ffff32;
|
||||
}
|
||||
.semRo {
|
||||
text-align: left;
|
||||
background-color: #7a000e;
|
||||
background: rgba(200, 0, 5, 0.6);
|
||||
padding: 0px 4px 0px 4px;
|
||||
color: #959500;
|
||||
}
|
||||
.semRo_b,
|
||||
.semFixRo,
|
||||
.semFixRo_b {
|
||||
text-align: left;
|
||||
background-color: #ff243f;
|
||||
background: rgba(255, 60, 80, 0.8);
|
||||
padding: 0px 4px 0px 4px;
|
||||
color: #ffff32;
|
||||
}
|
||||
/* semafori con animazione blinking */
|
||||
.no-cpu {
|
||||
-moz-transform: translateZ(0);
|
||||
-o-transform: translateZ(0);
|
||||
-webkit-transform: translateZ(0);
|
||||
-ms-transform: translateZ(0);
|
||||
transform: translateZ(0);
|
||||
}
|
||||
@-webkit-keyframes blinkBack {
|
||||
0% {
|
||||
background-position: 0% 50%;
|
||||
}
|
||||
body {
|
||||
font-size: 0.8em;
|
||||
50% {
|
||||
background-position: 100% 50%;
|
||||
}
|
||||
100% {
|
||||
background-position: 0% 50%;
|
||||
}
|
||||
}
|
||||
@-moz-keyframes blinkBack {
|
||||
0% {
|
||||
background-position: 0% 50%;
|
||||
}
|
||||
50% {
|
||||
background-position: 100% 50%;
|
||||
}
|
||||
100% {
|
||||
background-position: 0% 50%;
|
||||
}
|
||||
}
|
||||
@-o-keyframes blinkBack {
|
||||
0% {
|
||||
background-position: 0% 50%;
|
||||
}
|
||||
50% {
|
||||
background-position: 100% 50%;
|
||||
}
|
||||
100% {
|
||||
background-position: 0% 50%;
|
||||
}
|
||||
}
|
||||
@keyframes blinkBack {
|
||||
0% {
|
||||
background-position: 0% 50%;
|
||||
}
|
||||
50% {
|
||||
background-position: 100% 50%;
|
||||
}
|
||||
100% {
|
||||
background-position: 0% 50%;
|
||||
}
|
||||
}
|
||||
.semBlinkGi {
|
||||
background: linear-gradient(270deg, #8a8d27, #f9ff18);
|
||||
background-size: 400% 400%;
|
||||
-webkit-animation: blinkBack 2s ease infinite;
|
||||
-moz-animation: blinkBack 2s ease infinite;
|
||||
-o-animation: blinkBack 2s ease infinite;
|
||||
animation: blinkBack 2s ease infinite;
|
||||
}
|
||||
.semBlinkRo {
|
||||
background: linear-gradient(270deg, #7a000e, #ff243f);
|
||||
background-size: 400% 400%;
|
||||
-webkit-animation: blinkBack 2s ease infinite;
|
||||
-moz-animation: blinkBack 2s ease infinite;
|
||||
-o-animation: blinkBack 2s ease infinite;
|
||||
animation: blinkBack 2s ease infinite;
|
||||
color: Yellow;
|
||||
}
|
||||
+183
-167
@@ -6,10 +6,17 @@ h1, h2, h3, h4, h5, h6, b, display-1, display-2, display-3, display-4 {
|
||||
font-family: 'Lato', sans-serif;
|
||||
}
|
||||
|
||||
html, body {
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
html, body {
|
||||
/*font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;*/
|
||||
font-family: 'Roboto Condensed', sans-serif;
|
||||
line-height: 1.3;
|
||||
background-image: linear-gradient(180deg, rgb(1, 8, 22) 20%, #3aa6ff 90%);
|
||||
background-size: auto 100%;
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
|
||||
|
||||
@@ -55,61 +62,6 @@ a, .btn-link {
|
||||
text-decoration: line-through;
|
||||
}
|
||||
|
||||
|
||||
/* Gestione dropdown menu x week planner */
|
||||
|
||||
@dropTop: -13.5em;
|
||||
@dropLeftL: -10em;
|
||||
@dropLeftR: -24em;
|
||||
|
||||
.dropdown {
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
|
||||
&:hover .dropdown-content, &:hover .dropdown-content-top, &:hover .dropdown-content-left, &:hover .dropdown-content-top-left {
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
|
||||
.dropdown-content {
|
||||
display: none;
|
||||
position: absolute;
|
||||
left: @dropLeftL;
|
||||
min-width: 8em;
|
||||
box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
|
||||
z-index: 1;
|
||||
|
||||
.a {
|
||||
color: black;
|
||||
padding: 12px 16px;
|
||||
text-decoration: none;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.a:hover {
|
||||
background-color: #ddd;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
.dropdown-content-top {
|
||||
.dropdown-content();
|
||||
top: @dropTop;
|
||||
left: @dropLeftL;
|
||||
}
|
||||
|
||||
.dropdown-content-left {
|
||||
.dropdown-content();
|
||||
left: @dropLeftR;
|
||||
}
|
||||
|
||||
.dropdown-content-top-left {
|
||||
.dropdown-content();
|
||||
top: @dropTop;
|
||||
left: @dropLeftR;
|
||||
}
|
||||
|
||||
|
||||
.textTrim {
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
@@ -191,128 +143,192 @@ a, .btn-link {
|
||||
.blazor-error-boundary::after {
|
||||
content: "An error has occurred."
|
||||
}
|
||||
|
||||
|
||||
/*------------------------------------------------------------------
|
||||
[ Shortcuts / .shortcuts ]
|
||||
*/
|
||||
|
||||
@blSCut: 1rem;
|
||||
|
||||
.shortcuts {
|
||||
text-align: center;
|
||||
/* Gestione specifica oggetti MON*/
|
||||
/* MAIN: gestione layout dinamico mappa... */
|
||||
.fontSmall {
|
||||
font-size: 0.75em;
|
||||
}
|
||||
|
||||
.shortcuts .shortcut-icon {
|
||||
font-size: 2*@blSCut;
|
||||
.fontSmaller {
|
||||
font-size: 0.6em;
|
||||
}
|
||||
|
||||
.shortcuts .shortcut {
|
||||
min-width: @blSCut * 9;
|
||||
min-height: @blSCut * 5;
|
||||
display: inline-block;
|
||||
padding: @blSCut*2/3 0;
|
||||
margin: 0 2px 1em;
|
||||
vertical-align: top;
|
||||
text-decoration: none;
|
||||
background: #F3F3F3;
|
||||
background-image: -webkit-gradient(linear, left 0%, left 100%, from(#ffffff), to(#eeeeee));
|
||||
background-image: -webkit-linear-gradient(top, #ffffff, 0%, #eeeeee, 100%);
|
||||
background-image: -moz-linear-gradient(top, #ffffff 0%, #eeeeee 100%);
|
||||
background-image: linear-gradient(to bottom, #ffffff 0%, #eeeeee 100%);
|
||||
background-repeat: repeat-x;
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffeeeeee', GradientType=0);
|
||||
border: 1px solid #ddd;
|
||||
box-sizing: border-box;
|
||||
border-radius: @blSCut/2;
|
||||
.statusMap {
|
||||
background: #222;
|
||||
}
|
||||
|
||||
.shortcuts .shortcut-sm {
|
||||
min-width: @blSCut * 4.5;
|
||||
min-height: @blSCut * 3;
|
||||
display: inline-block;
|
||||
padding: @blSCut/4 0;
|
||||
margin: 0 2px 1em;
|
||||
vertical-align: top;
|
||||
text-decoration: none;
|
||||
background: #F3F3F3;
|
||||
background-image: -webkit-gradient(linear, left 0%, left 100%, from(#ffffff), to(#eeeeee));
|
||||
background-image: -webkit-linear-gradient(top, #ffffff, 0%, #eeeeee, 100%);
|
||||
background-image: -moz-linear-gradient(top, #ffffff 0%, #eeeeee 100%);
|
||||
background-image: linear-gradient(to bottom, #ffffff 0%, #eeeeee 100%);
|
||||
background-repeat: repeat-x;
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffeeeeee', GradientType=0);
|
||||
border: 1px solid #ddd;
|
||||
box-sizing: border-box;
|
||||
border-radius: @blSCut/2;
|
||||
}
|
||||
|
||||
.shortcuts .shortcut .shortcut-icon {
|
||||
width: 100%;
|
||||
margin-top: 0;
|
||||
margin-bottom: 0;
|
||||
font-size: @blSCut*2;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
.shortcuts .shortcut-sm .shortcut-icon {
|
||||
width: 100%;
|
||||
margin-top: 0;
|
||||
margin-bottom: 0;
|
||||
font-size: @blSCut*2;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
.shortcuts .shortcut:hover {
|
||||
background: #E8E8E8;
|
||||
background-image: -webkit-gradient(linear, left 0%, left 100%, from(#fafafa), to(#e1e1e1));
|
||||
background-image: -webkit-linear-gradient(top, #fafafa, 0%, #e1e1e1, 100%);
|
||||
background-image: -moz-linear-gradient(top, #fafafa 0%, #e1e1e1 100%);
|
||||
background-image: linear-gradient(to bottom, #fafafa 0%, #e1e1e1 100%);
|
||||
background-repeat: repeat-x;
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffafafa', endColorstr='#ffe1e1e1', GradientType=0);
|
||||
}
|
||||
|
||||
.shortcuts .shortcut-sm:hover {
|
||||
background: #E8E8E8;
|
||||
background-image: -webkit-gradient(linear, left 0%, left 100%, from(#fafafa), to(#e1e1e1));
|
||||
background-image: -webkit-linear-gradient(top, #fafafa, 0%, #e1e1e1, 100%);
|
||||
background-image: -moz-linear-gradient(top, #fafafa 0%, #e1e1e1 100%);
|
||||
background-image: linear-gradient(to bottom, #fafafa 0%, #e1e1e1 100%);
|
||||
background-repeat: repeat-x;
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffafafa', endColorstr='#ffe1e1e1', GradientType=0);
|
||||
}
|
||||
|
||||
.shortcuts .shortcut:active {
|
||||
box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
|
||||
}
|
||||
|
||||
.shortcuts .shortcut-sm:active {
|
||||
box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
|
||||
}
|
||||
|
||||
.shortcuts .shortcut:hover .shortcut-icon {
|
||||
color: #C93;
|
||||
}
|
||||
|
||||
.shortcuts .shortcut-sm:hover .shortcut-icon {
|
||||
color: #666;
|
||||
}
|
||||
|
||||
.shortcuts .shortcut-label {
|
||||
display: block;
|
||||
margin-top: .75em;
|
||||
.statusMap .ui-title, .statusMap .ui-li-aside {
|
||||
font-weight: 400;
|
||||
color: #666;
|
||||
text-transform: uppercase;
|
||||
font-size: 2.5em;
|
||||
line-height: 1.1em;
|
||||
color: #DEDEDE;
|
||||
text-shadow: 2px 2px 4px #000;
|
||||
text-align: center;
|
||||
background: linear-gradient(270deg, rgba(20,20,20,0.7), rgba(100,100,100,0.7), rgba(20,20,20,0.7));
|
||||
}
|
||||
|
||||
@media (max-width: 640px) {
|
||||
.shortcuts .shortcut {
|
||||
min-width: @blSCut * 8;
|
||||
min-height: @blSCut * 4;
|
||||
.statusMap .ui-art {
|
||||
}
|
||||
|
||||
.statusMap .ui-footer {
|
||||
color: #CDCDCD;
|
||||
background: linear-gradient(270deg, rgba(10,10,10,0.7), rgba(80,80,80,0.7), rgba(10,10,10,0.7));
|
||||
}
|
||||
/* END: gestione layout dinamico mappa... */
|
||||
/* area semafori*/
|
||||
.semBlinkVe,
|
||||
.semFixVe,
|
||||
.semFixVe_b,
|
||||
.semVe,
|
||||
.semVe_b {
|
||||
background: #009036;
|
||||
background: rgba(0,255,80,.6);
|
||||
color: #FFFFAA;
|
||||
}
|
||||
|
||||
.semBlinkGr,
|
||||
.semFixGr,
|
||||
.semFixGr_b,
|
||||
.semGr,
|
||||
.semGr_b {
|
||||
background-color: #bcbcbc;
|
||||
background: rgba(180,180,180,.6);
|
||||
}
|
||||
|
||||
.semGi {
|
||||
text-align: left;
|
||||
background: #8a8d27;
|
||||
background: rgba(230,210,0,.6);
|
||||
padding: 0px 4px 0px 4px;
|
||||
color: #000;
|
||||
}
|
||||
|
||||
.semGi_b,
|
||||
.semFixGi,
|
||||
.semFixGi_b {
|
||||
text-align: left;
|
||||
background: #f9ff18;
|
||||
background: rgba(255,255,0,.8);
|
||||
padding: 0px 4px 0px 4px;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
.semBl {
|
||||
text-align: left;
|
||||
background: #000E7A;
|
||||
background: rgba(0,5,200,.6);
|
||||
padding: 0px 4px 0px 4px;
|
||||
color: #959500;
|
||||
}
|
||||
|
||||
.semBl_b,
|
||||
.semFixBl,
|
||||
.semFixBl_b {
|
||||
text-align: left;
|
||||
background: #243FFF;
|
||||
background: rgba(60,80,255,.8);
|
||||
padding: 0px 4px 0px 4px;
|
||||
color: #ffff32;
|
||||
}
|
||||
|
||||
.semRo {
|
||||
text-align: left;
|
||||
background-color: #7a000e;
|
||||
background: rgba(200,0,5,.6);
|
||||
padding: 0px 4px 0px 4px;
|
||||
color: #959500;
|
||||
}
|
||||
|
||||
.semRo_b,
|
||||
.semFixRo,
|
||||
.semFixRo_b {
|
||||
text-align: left;
|
||||
background-color: #ff243f;
|
||||
background: rgba(255,60,80,.8);
|
||||
padding: 0px 4px 0px 4px;
|
||||
color: #ffff32;
|
||||
}
|
||||
/* semafori con animazione blinking */
|
||||
.no-cpu {
|
||||
-moz-transform: translateZ(0);
|
||||
-o-transform: translateZ(0);
|
||||
-webkit-transform: translateZ(0);
|
||||
-ms-transform: translateZ(0);
|
||||
transform: translateZ(0);
|
||||
}
|
||||
|
||||
@-webkit-keyframes blinkBack {
|
||||
0% {
|
||||
background-position: 0% 50%;
|
||||
}
|
||||
|
||||
body {
|
||||
font-size: 0.8em;
|
||||
50% {
|
||||
background-position: 100% 50%;
|
||||
}
|
||||
|
||||
100% {
|
||||
background-position: 0% 50%;
|
||||
}
|
||||
}
|
||||
|
||||
@-moz-keyframes blinkBack {
|
||||
0% {
|
||||
background-position: 0% 50%;
|
||||
}
|
||||
|
||||
50% {
|
||||
background-position: 100% 50%;
|
||||
}
|
||||
|
||||
100% {
|
||||
background-position: 0% 50%;
|
||||
}
|
||||
}
|
||||
|
||||
@-o-keyframes blinkBack {
|
||||
0% {
|
||||
background-position: 0% 50%;
|
||||
}
|
||||
|
||||
50% {
|
||||
background-position: 100% 50%;
|
||||
}
|
||||
|
||||
100% {
|
||||
background-position: 0% 50%;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes blinkBack {
|
||||
0% {
|
||||
background-position: 0% 50%;
|
||||
}
|
||||
|
||||
50% {
|
||||
background-position: 100% 50%;
|
||||
}
|
||||
|
||||
100% {
|
||||
background-position: 0% 50%;
|
||||
}
|
||||
}
|
||||
|
||||
.semBlinkGi {
|
||||
background: linear-gradient(270deg, #8a8d27, #f9ff18);
|
||||
background-size: 400% 400%;
|
||||
-webkit-animation: blinkBack 2s ease infinite;
|
||||
-moz-animation: blinkBack 2s ease infinite;
|
||||
-o-animation: blinkBack 2s ease infinite;
|
||||
animation: blinkBack 2s ease infinite;
|
||||
}
|
||||
|
||||
.semBlinkRo {
|
||||
background: linear-gradient(270deg, #7a000e, #ff243f);
|
||||
background-size: 400% 400%;
|
||||
-webkit-animation: blinkBack 2s ease infinite;
|
||||
-moz-animation: blinkBack 2s ease infinite;
|
||||
-o-animation: blinkBack 2s ease infinite;
|
||||
animation: blinkBack 2s ease infinite;
|
||||
color: Yellow;
|
||||
}
|
||||
|
||||
Vendored
+1
-1
File diff suppressed because one or more lines are too long
Binary file not shown.
|
After Width: | Height: | Size: 3.0 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 19 KiB |
Reference in New Issue
Block a user