Compare commits

...

8 Commits

Author SHA1 Message Date
bef96ba7e3 fix(ui): changed backgrounds (#33)
Reviewed-on: #33
2025-10-30 10:47:40 +01:00
c0dadf8927 feat(ui): CSS Animations #18 (#27)
Added css animations on reload

Co-authored-by: LQ63 <lkhermann@web.de>
Reviewed-on: #27
Reviewed-by: Janis <janis-e@gmx.de>
Co-authored-by: lq64 <lq@blackhole.local>
Co-committed-by: lq64 <lq@blackhole.local>
2025-10-30 08:03:00 +01:00
1f377de0f4 feat(ui): implement CSS variables for theme support (#26)
#17

Reviewed-on: #26
Reviewed-by: lq64 <lq@blackhole.local>
Co-authored-by: Janis <janis.e.20@gmx.de>
Co-committed-by: Janis <janis.e.20@gmx.de>
2025-10-29 16:52:32 +01:00
6c31fa0538 fix(ui): added dark mode (#25)
Reviewed-on: #25
Reviewed-by: lq64 <lq@blackhole.local>
Co-authored-by: Janis <janis.e.20@gmx.de>
Co-committed-by: Janis <janis.e.20@gmx.de>
2025-10-29 10:37:17 +01:00
729a4eec6b fix(ui): add light mode styles, update font families and fixed ui (#24)
Reviewed-on: #24
Co-authored-by: Janis <janis.e.20@gmx.de>
Co-committed-by: Janis <janis.e.20@gmx.de>
2025-10-28 19:06:42 +01:00
72fcf783b8 feat(ui): LESS Integration
#15-Create-a-default-theme-with-Less- (#23)
Added LESS and created a light mode

Co-authored-by: LQ63 <lkhermann@web.de>
Reviewed-on: #23
Reviewed-by: Janis <janis-e@gmx.de>
Co-authored-by: lq64 <lq@blackhole.local>
Co-committed-by: lq64 <lq@blackhole.local>
2025-10-28 18:34:29 +01:00
1517d0c006 fix(imports): reorganized import statements for clarity and consistency (#22)
Reviewed-on: #22
Co-authored-by: Janis <janis.e.20@gmx.de>
Co-committed-by: Janis <janis.e.20@gmx.de>
2025-10-26 18:09:36 +01:00
7f765b4514 fix(base): fixed persistence logic (#21)
Reviewed-on: #21
Co-authored-by: Janis <janis.e.20@gmx.de>
Co-committed-by: Janis <janis.e.20@gmx.de>
2025-10-26 18:04:03 +01:00
12 changed files with 67 additions and 24 deletions

View File

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

View File

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

View File

@@ -1,5 +1,15 @@
@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: url("/assets/images/background.png"); background-image: @background-image;
background-size: 100vw 100vh;
} }
html, body { html, body {
@@ -12,12 +22,20 @@ 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: white; color: @color;
font-size: 40px; font-size: 40px;
font-family: Arial; font-family: Arial, serif;
} }
#ingame { #ingame {
display: flex; display: flex;
@@ -30,8 +48,21 @@ 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;
@@ -80,11 +111,11 @@ html, body {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
align-items: center; align-items: center;
height: 0%; height: 0;
} p {
#nextPlayers p { margin-top: 0;
margin-top: 0px; margin-bottom: 0;
margin-bottom: 0px; }
} }
#invisible { #invisible {
visibility: hidden; visibility: hidden;
@@ -96,7 +127,7 @@ html, body {
height: 100%; height: 100%;
} }
#rules { #rules {
color: white; color: @color;
font-size: 1.5em; font-size: 1.5em;
font-family: Arial; font-family: Arial, serif;
} }

View File

@@ -1,7 +1,7 @@
package components package components
import de.knockoutwhist.components.DefaultConfiguration
import controllers.WebUI import controllers.WebUI
import de.knockoutwhist.components.DefaultConfiguration
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 controllers.sessions.AdvancedSession
import com.google.inject.{Guice, Injector} import com.google.inject.{Guice, Injector}
import controllers.sessions.AdvancedSession
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.{Ace, Eight, Five, Four, Jack, King, Nine, Queen, Seven, Six, Ten, Three, Two} import de.knockoutwhist.cards.CardValue.*
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>Please select your session to jump inside the game!</p> <p id="textanimation">Please select your session to jump inside the game!</p>
@for(session <- sessions) { @for(session <- sessions) {
<a href="@routes.HomeController.ingame(session.id.toString)">@session.name</a><br> <a id="textanimation" href="@routes.HomeController.ingame(session.id.toString)">@session.name</a><br>
} }
</div> </div>
} }

Binary file not shown.

Before

Width:  |  Height:  |  Size: 610 KiB

After

Width:  |  Height:  |  Size: 2.8 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 MiB

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.

View File

@@ -4,3 +4,5 @@ addSbtPlugin("org.foundweekends.giter8" % "sbt-giter8-scaffold" % "0.18.0")
addSbtPlugin("org.scoverage" % "sbt-scoverage" % "2.2.1") addSbtPlugin("org.scoverage" % "sbt-scoverage" % "2.2.1")
addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "2.3.0") addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "2.3.0")
addSbtPlugin("org.scoverage" % "sbt-coveralls" % "1.3.1") addSbtPlugin("org.scoverage" % "sbt-coveralls" % "1.3.1")
addSbtPlugin("com.typesafe.sbt" % "sbt-less" % "1.1.2")