Compare commits

..

2 Commits

Author SHA1 Message Date
LQ63
083b7a03b1 feat(ui): LESS Integration
Added less integration + light mode
2025-10-27 22:57:55 +01:00
LQ63
365f9757a2 feat(ui): LESS Integration
Tried to add less integration but came to the problem that node.js is needed for it to work
2025-10-27 22:01:55 +01:00
11 changed files with 19 additions and 58 deletions

View File

@@ -1,6 +0,0 @@
@media (prefers-color-scheme: dark) {
:root {
--background-image: url('/assets/images/background.png');
--color: white;
}
}

View File

@@ -1,4 +0,0 @@
:root {
--background-image: url('/assets/images/img.png');
--color: black;
}

View File

@@ -1,12 +1,4 @@
@import "light-mode.less"; @import "light-mode.less";
@import "dark-mode.less";
@background-image: var(--background-image);
@color: var(--color);
@keyframes slideIn {
0% { transform: translateX(-100vw); }
100% { transform: translateX(0); }
}
body { body {
background-image: @background-image; background-image: @background-image;
background-size: 100vw 100vh; background-size: 100vw 100vh;
@@ -22,20 +14,12 @@ html, body {
justify-content: flex-start; justify-content: flex-start;
align-items: center; align-items: center;
text-align: center; text-align: center;
h1 {
animation: slideIn 0.5s ease-out forwards;
animation-fill-mode: backwards;
}
} }
#textanimation {
animation: slideIn 0.5s ease-out forwards;
animation-fill-mode: backwards;
animation-delay: 1s;
}
#sessions a, h1, p { #sessions a, h1, p {
color: @color; color: @color;
font-size: 40px; font-size: 40px;
font-family: Arial, serif; font-family: Arial;
} }
#ingame { #ingame {
display: flex; display: flex;
@@ -48,21 +32,8 @@ html, body {
display: flex; display: flex;
flex-direction: row; flex-direction: row;
justify-content: center; justify-content: center;
height: 20%; height: 20%
img {
animation: slideIn 0.5s ease-out forwards;
animation-fill-mode: backwards;
&:nth-child(1) { animation-delay: 0.5s; }
&:nth-child(2) { animation-delay: 1s; }
&:nth-child(3) { animation-delay: 1.5s; }
&:nth-child(4) { animation-delay: 2s; }
&:nth-child(5) { animation-delay: 2.5s; }
&:nth-child(6) { animation-delay: 3s; }
&:nth-child(7) { animation-delay: 3.5s; }
}
} }
#cardsplayed { #cardsplayed {
display: flex; display: flex;
flex-direction: row; flex-direction: row;
@@ -111,10 +82,10 @@ html, body {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
align-items: center; align-items: center;
height: 0; height: 0%;
p { p {
margin-top: 0; margin-top: 0px;
margin-bottom: 0; margin-bottom: 0px;
} }
} }
#invisible { #invisible {
@@ -127,7 +98,7 @@ html, body {
height: 100%; height: 100%;
} }
#rules { #rules {
color: @color; color: white;
font-size: 1.5em; font-size: 1.5em;
font-family: Arial, serif; font-family: Arial;
} }

View File

@@ -1,7 +1,7 @@
package components package components
import controllers.WebUI
import de.knockoutwhist.components.DefaultConfiguration import de.knockoutwhist.components.DefaultConfiguration
import controllers.WebUI
import de.knockoutwhist.ui.UI import de.knockoutwhist.ui.UI
import de.knockoutwhist.utils.events.EventListener import de.knockoutwhist.utils.events.EventListener

View File

@@ -1,14 +1,14 @@
package controllers package controllers
import com.google.inject.{Guice, Injector}
import controllers.sessions.AdvancedSession import controllers.sessions.AdvancedSession
import com.google.inject.{Guice, Injector}
import de.knockoutwhist.KnockOutWhist import de.knockoutwhist.KnockOutWhist
import de.knockoutwhist.components.Configuration import de.knockoutwhist.components.Configuration
import de.knockoutwhist.control.GameState.{InGame, Lobby, SelectTrump, TieBreak} import de.knockoutwhist.control.GameState.{InGame, Lobby, SelectTrump, TieBreak}
import de.knockoutwhist.control.controllerBaseImpl.BaseGameLogic import de.knockoutwhist.control.controllerBaseImpl.BaseGameLogic
import di.KnockOutWebConfigurationModule import di.KnockOutWebConfigurationModule
import play.api.{controllers, *}
import play.api.mvc.* import play.api.mvc.*
import play.api.*
import play.twirl.api.Html import play.twirl.api.Html
import java.util.UUID import java.util.UUID

View File

@@ -1,7 +1,7 @@
package util package util
import de.knockoutwhist.cards.Card import de.knockoutwhist.cards.Card
import de.knockoutwhist.cards.CardValue.* import de.knockoutwhist.cards.CardValue.{Ace, Eight, Five, Four, Jack, King, Nine, Queen, Seven, Six, Ten, Three, Two}
import de.knockoutwhist.cards.Suit.{Clubs, Diamonds, Hearts, Spades} import de.knockoutwhist.cards.Suit.{Clubs, Diamonds, Hearts, Spades}
import play.twirl.api.Html import play.twirl.api.Html
import scalafx.scene.image.Image import scalafx.scene.image.Image

View File

@@ -3,9 +3,9 @@
@main("Sessions") { @main("Sessions") {
<div id="sessions"> <div id="sessions">
<h1>Knockout Whist sessions</h1> <h1>Knockout Whist sessions</h1>
<p id="textanimation">Please select your session to jump inside the game!</p> <p>Please select your session to jump inside the game!</p>
@for(session <- sessions) { @for(session <- sessions) {
<a id="textanimation" href="@routes.HomeController.ingame(session.id.toString)">@session.name</a><br> <a href="@routes.HomeController.ingame(session.id.toString)">@session.name</a><br>
} }
</div> </div>
} }

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 MiB

After

Width:  |  Height:  |  Size: 610 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 MiB

After

Width:  |  Height:  |  Size: 352 KiB

View File

@@ -1,9 +1,9 @@
package controllers package controllers
import org.scalatestplus.play.* import org.scalatestplus.play._
import org.scalatestplus.play.guice.* import org.scalatestplus.play.guice._
import play.api.test.* import play.api.test._
import play.api.test.Helpers.* import play.api.test.Helpers._
/** /**
* Add your spec here. * Add your spec here.