diff --git a/packages/play-node-go/public/reset.css b/packages/play-node-go/public/reset.css index ed11813..82c1626 100644 --- a/packages/play-node-go/public/reset.css +++ b/packages/play-node-go/public/reset.css @@ -1,3 +1,7 @@ +a { + color: unset; +} + /* http://meyerweb.com/eric/tools/css/reset/ v2.0 | 20110126 License: none (public domain) diff --git a/packages/play-node-go/public/stylesheets/partials/_variables.scss b/packages/play-node-go/public/stylesheets/partials/_variables.scss index 281b82b..9e8e1d6 100644 --- a/packages/play-node-go/public/stylesheets/partials/_variables.scss +++ b/packages/play-node-go/public/stylesheets/partials/_variables.scss @@ -28,4 +28,16 @@ $colors: ( $backgrounds: ( "game_room": radial-gradient(farthest-corner at 55% 40%, rgb(189, 131, 100) 0%, rgb(175, 113, 80) 65%, rgb(150, 90, 65) 90%, rgb(125, 65, 40) 100%), -) \ No newline at end of file +); + +/* Game Room Components */ +$small-room: ( + "roof": linear-gradient(rgb(69, 36, 19), rgb(31, 22, 18)), + "body": rgb(174, 169, 120), + "door": radial-gradient(15vh 20vh at top left, #662413,#992413 15%, #cc3423), + "door-handle": radial-gradient(circle at 40% 30%, rgb(247, 235, 183), rgb(213, 222, 41) 30%, rgb(121, 108, 7)), + "window-x": linear-gradient(rgba(67, 149, 159, 0.4), rgba(196, 249, 255, 0.4) 50%, rgba(67, 149, 159, 0.4) 50%, rgba(196, 249, 255, 0.4)), + "window-y": linear-gradient(to right, rgba(67, 149, 159, 0.5), rgba(196, 249, 255, 0.5) 50%, rgba(67, 149, 159, 0.5) 50%, rgba(196, 249, 255, 0.5)), + "frame": rgb(69, 36, 19), + "sign": rgb(188, 127, 95) +); \ No newline at end of file diff --git a/packages/play-node-go/src/components/Button/Room/Room.js b/packages/play-node-go/src/components/Button/Room/Room.js index 82e27ce..97992c3 100644 --- a/packages/play-node-go/src/components/Button/Room/Room.js +++ b/packages/play-node-go/src/components/Button/Room/Room.js @@ -2,12 +2,61 @@ import React from 'react'; import { Link } from 'react-router-dom'; import './Room.scss'; -const RoomButton = (props) => { - const roomData = props.room; +const RoomButton = ({room}) => { + const smallRoom = ( +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ) + return (
-

{roomData.name}

- Join Room +

+ Join {room.name} +

+

+ ? +

+ {smallRoom}
); } diff --git a/packages/play-node-go/src/components/Button/Room/Room.scss b/packages/play-node-go/src/components/Button/Room/Room.scss index b48b2ee..708156d 100644 --- a/packages/play-node-go/src/components/Button/Room/Room.scss +++ b/packages/play-node-go/src/components/Button/Room/Room.scss @@ -1,9 +1,229 @@ -div.RoomButton { - display: block; - padding: 1vw; +@import '../../../../public/stylesheets/partials/mixins'; +@import '../../../../public/stylesheets/partials/variables'; - .RoomButton__room-name { - text-transform: capitalize; +div.RoomButton { + display: grid; + height: 20vh; + padding: 1vw; + width: 20vh; + grid-template-columns: [left] 1fr [right]; + grid-template-rows: [top] 1fr [middle] 4fr [bottom]; + + .RoomButton__room-link { + align-self: self-end; + grid-area: top/left/middle/right; + // margin: 0 auto; + @include gameViewLabel; + // text-transform: capitalize; + max-width: fit-content; + z-index: 1; + + &--info { + justify-self: end; + } } + div.small-room { + grid-area: top/left/bottom/right; + height: 100%; + width: 100%; + // background-color: #f00; + display: grid; + grid-template-rows: [sky-start] 4vh [roof-start] 5vh [body-start] 1fr [body-end]; + + .small-room__roof { + display: grid; + grid-row: roof-start / body-start; + height: 100%; + max-width: 20vh; + grid-template-columns: [left] 10vh [middle] 10vh [right]; + grid-template-rows: 1fr; + + .small-room__roof-top { + height: 0.7vh; + width: 12vh; + position: relative; + top: 3vh; + background: map-get($small-room, "roof"); + grid-row: 1 / 2; + box-shadow: 0 0.35vh 0.75vh map-get($colors, "home"); + + &--left { + grid-column: left / middle; + transform: rotate(-26deg); + left: -1.2vh; + } + + &--right { + grid-column: middle / right; + transform: rotate(26deg); + left: -0.8vh; + } + } + + &--left { + border-right: map-get($small-room, "body") solid 10vh; + border-top: map-get($colors, "home") solid 5vh; + height: 0; + grid-column: left / middle; + } + &--right { + border-left: map-get($small-room, "body") solid 10vh; + border-top: map-get($colors, "home") solid 5vh; + height: 0; + grid-column: middle / right; + } + } + + .small-room__body { + grid-row: body-start / body-end; + background-color: map-get($small-room, "body"); + width: 80%; + justify-self: center; + display: grid; + grid-template-rows: 1fr 1vh 5fr 0.75vh; + grid-template-columns: 0.5vh 1vh 2fr 1vh 3fr 1vh 2fr 1vh 0.5vh; + grid-template-areas: + "trim-left gap-left top-left gap-mid-left top-mid gap-mid-right top-right gap-right trim-right" + "trim-left gap-left top-left gap-mid-left top-mid gap-mid-right top-right gap-right trim-right" + "trim-left gap-left window--left gap-mid-left door gap-mid-right window--right gap-right trim-right" + "trim-left trim--bottom-left trim--bottom-left trim--bottom-left door trim--bottom-right trim--bottom-right trim--bottom-right trim-right"; + } + + .small-room__trim { + width: 100%; + height: 100%; + background-color: map-get($small-room, "frame"); + + &--left { + grid-area: trim-left; + justify-self: start; + } + + &--right { + grid-area: trim-right; + justify-self: end; + } + + &--bottom-left { + grid-area: trim--bottom-left; + } + + &--bottom-right { + grid-area: trim--bottom-right; + } + } + + .small-room__sign { + grid-area: top-mid; + background-color: map-get($small-room, "sign"); + width: 2vh; + height: 2vh; + display: grid; + padding: 0.1vh; + grid-template-rows: 1fr 1fr; + grid-template-columns: 1fr 1fr; + gap: 0.1vh; + justify-self: center; + + .small-room__sign__stone { + border-radius: 100%; + + &--white { + background-color: #FFF; + } + + &--black { + background-color: #000; + } + } + } + + .small-room__window { + align-self: center; + height: 60%; + width: 100%; + background: map-get($small-room, "window-x"), map-get($small-room, "window-y"); + display: grid; + grid-template-rows: 1fr 5fr 1fr 5fr 1fr; + grid-template-columns: 1fr 5fr 1fr 5fr 1fr; + + &--left { + grid-area: window--left; + } + &--right { + grid-area: window--right; + } + + .small-room__window-frame { + background-color: map-get($small-room, "frame"); + width: 100%; + height: 100%; + + &--top { + grid-area: 1/1/2/6; + } + + &--center { + grid-area: 3/1/4/6; + } + + &--bottom { + grid-area: 5/1/6/6; + } + + &--left { + grid-area: 1/1/6/2; + } + + &--middle { + grid-area: 1/3/6/4; + } + + &--right { + grid-area: 1/5/6/6; + } + } + } + + .small-room__door { + grid-area: door; + background: map-get($small-room, "door"); + width: 100%; + height: 100%; + display: grid; + grid-template-columns: 0.5vh 1fr 0.5vh; + grid-template-rows: 0.5vh 1fr; + + .small-room__door-handle { + height: 0.75vh; + width: 0.75vh; + border-radius: 50%; + background: map-get($small-room, "door-handle"); + grid-area: 2/2/3/3; + align-self: center; + justify-self: end; + margin: 0.5vh 0.5vh 0 0; + box-shadow: 0.1vh 0.25vh 0.4vh rgba(30, 30, 30, 0.7); + } + + .small-room__door-frame { + background-color: map-get($small-room, "frame"); + height: 100%; + width: 100%; + + &--top { + grid-area: 1/1/2/3; + } + + &--left { + grid-area: 1/1/3/2; + } + + &--left { + grid-area: 1/3/3/4; + } + } + } + } } \ No newline at end of file