add form-box css
This commit is contained in:
parent
50eb6f808b
commit
87a9806056
4 changed files with 85 additions and 37 deletions
|
|
@ -14,8 +14,10 @@
|
||||||
--bg-post: #C5E1A5;
|
--bg-post: #C5E1A5;
|
||||||
--border-post: #9dd162;
|
--border-post: #9dd162;
|
||||||
--bg-post-highlight: #9dd162;
|
--bg-post-highlight: #9dd162;
|
||||||
--border-form: #FFB300;
|
--border-form-box: #FFB300;
|
||||||
--bg-form: #FCE4EC;
|
--bg-form-box: #FCE4EC;
|
||||||
|
--border-profile-form-box: #9dd162;
|
||||||
|
--bg-profile-form-box: lightblue;
|
||||||
--bg-error-popup: red;
|
--bg-error-popup: red;
|
||||||
--border-error-popup: red;
|
--border-error-popup: red;
|
||||||
--bg-id: DodgerBlue;
|
--bg-id: DodgerBlue;
|
||||||
|
|
@ -128,9 +130,47 @@ nav a:hover, nav button:hover,
|
||||||
z-index: 2;
|
z-index: 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.form-box {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
width: fit-content;
|
||||||
|
height: fit-content;
|
||||||
|
padding: 5px;
|
||||||
|
background-color: var(--bg-form-box);
|
||||||
|
border: 2px solid var(--border-form-box);
|
||||||
|
}
|
||||||
|
|
||||||
|
.form-box > h2 {
|
||||||
|
margin-top: 1vh;
|
||||||
|
margin-bottom: 2vh;
|
||||||
|
margin-left: 1vh;
|
||||||
|
}
|
||||||
|
|
||||||
|
.form-box-list {
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: 1fr;
|
||||||
|
gap: 5vh;
|
||||||
|
}
|
||||||
|
|
||||||
|
.profile-page, .account-page, .register-page, .login-page, .about-page, .user-page {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
padding-left: 15vh;
|
||||||
|
|
||||||
|
.form-box {
|
||||||
|
background-color: var(--bg-profile-form-box);
|
||||||
|
border: 2px solid var(--border-profile-form-box);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.register-page, .login-page {
|
||||||
|
padding-top: 15vh;
|
||||||
|
}
|
||||||
|
|
||||||
.new-thread-view {
|
.new-thread-view {
|
||||||
margin-inline: 1vw;
|
display: flex;
|
||||||
margin-block: 3vw;
|
justify-content: center;
|
||||||
|
padding-top: 15vh;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* css trick to have a dropdown menu on click */
|
/* css trick to have a dropdown menu on click */
|
||||||
|
|
@ -359,13 +399,11 @@ nav a:hover, nav button:hover,
|
||||||
}
|
}
|
||||||
|
|
||||||
.reply-popup {
|
.reply-popup {
|
||||||
display: table;
|
display: grid;
|
||||||
|
grid-template-rows: 1fr 14fr;
|
||||||
position: fixed;
|
position: fixed;
|
||||||
right: 1vw;
|
right: 1vw;
|
||||||
top: 40vh;
|
top: 40vh;
|
||||||
background-color: var(--bg-form);
|
|
||||||
border: 2px solid var(--border-form);
|
|
||||||
padding: 5px;
|
|
||||||
z-index: 3;
|
z-index: 3;
|
||||||
}
|
}
|
||||||
.reply-popup-dragzone {
|
.reply-popup-dragzone {
|
||||||
|
|
|
||||||
|
|
@ -49,18 +49,18 @@ module Home = struct
|
||||||
let left t_s =
|
let left t_s =
|
||||||
let new_thread_view =
|
let new_thread_view =
|
||||||
(* TODO try to find better class names *)
|
(* TODO try to find better class names *)
|
||||||
let new_thread_form_div =
|
|
||||||
El.div
|
|
||||||
~at:[ class' "new-thread-form-div" ]
|
|
||||||
[ Html_form.new_thread_el t_s ]
|
|
||||||
in
|
|
||||||
El.div
|
El.div
|
||||||
~at:[ class' "new-thread-view" ]
|
~at:[ class' "new-thread-view" ]
|
||||||
|
[ El.div
|
||||||
|
~at:[ class' "form-box" ]
|
||||||
[ h2 "New thread"
|
[ h2 "New thread"
|
||||||
; El.span
|
; El.span
|
||||||
~at:[ class' "new-thread-info" ]
|
~at:[ class' "new-thread-info" ]
|
||||||
[ el_txt "Click the map and make a new thread:" ]
|
[ el_txt "Click the map and make a new thread:" ]
|
||||||
; new_thread_form_div
|
; El.div
|
||||||
|
~at:[ class' "new-thread-form-div" ]
|
||||||
|
[ Html_form.new_thread_el t_s ]
|
||||||
|
]
|
||||||
]
|
]
|
||||||
in
|
in
|
||||||
let thread_view = Html_thread.f t_s in
|
let thread_view = Html_thread.f t_s in
|
||||||
|
|
@ -90,14 +90,14 @@ end
|
||||||
|
|
||||||
module Register = struct
|
module Register = struct
|
||||||
let f t_s =
|
let f t_s =
|
||||||
let l = [ h1 "Register"; Html_form.mk_register () ] in
|
let l = [ Html_form.mk_register () ] in
|
||||||
let el = mk_page Register t_s l in
|
let el = mk_page Register t_s l in
|
||||||
el
|
el
|
||||||
end
|
end
|
||||||
|
|
||||||
module Login = struct
|
module Login = struct
|
||||||
let f t_s =
|
let f t_s =
|
||||||
let l = [ h1 "Login"; Html_form.mk_login () ] in
|
let l = [ Html_form.mk_login () ] in
|
||||||
let el = mk_page Login t_s l in
|
let el = mk_page Login t_s l in
|
||||||
el
|
el
|
||||||
end
|
end
|
||||||
|
|
@ -167,8 +167,10 @@ module Profile = struct
|
||||||
; mk_page_link ~label:"public profile" (User (Loading user.user_id))
|
; mk_page_link ~label:"public profile" (User (Loading user.user_id))
|
||||||
]
|
]
|
||||||
in
|
in
|
||||||
let forms = Html_form.profile user in
|
let forms =
|
||||||
[ h1 "Profile settings"; public_profile_link ] @ forms
|
El.div ~at:[ class' "form-box-list" ] (Html_form.profile user)
|
||||||
|
in
|
||||||
|
[ h1 "Profile settings"; public_profile_link; forms ]
|
||||||
|
|
||||||
let f t_s =
|
let f t_s =
|
||||||
let el = mk_page Profile t_s [] in
|
let el = mk_page Profile t_s [] in
|
||||||
|
|
@ -181,8 +183,10 @@ module Account = struct
|
||||||
match get_user_private t with
|
match get_user_private t with
|
||||||
| None -> []
|
| None -> []
|
||||||
| Some user_private ->
|
| Some user_private ->
|
||||||
let forms = Html_form.account user_private in
|
let forms =
|
||||||
h1 "Account settings" :: forms
|
El.div ~at:[ class' "form-box-list" ] (Html_form.account user_private)
|
||||||
|
in
|
||||||
|
[ h1 "Account settings"; forms ]
|
||||||
|
|
||||||
let f t_s =
|
let f t_s =
|
||||||
let el = mk_page Account t_s [] in
|
let el = mk_page Account t_s [] in
|
||||||
|
|
|
||||||
|
|
@ -79,18 +79,22 @@ let mk_logout () =
|
||||||
in
|
in
|
||||||
mk Logout ~btn []
|
mk Logout ~btn []
|
||||||
|
|
||||||
|
let mk_box title l = El.div ~at:[ class' "form-box" ] (h2 title :: l)
|
||||||
|
|
||||||
let mk_register () =
|
let mk_register () =
|
||||||
let nick = mk_field `Text ~name:"nick" ~label:"Nickname" ~at:[] in
|
let nick = mk_field `Text ~name:"nick" ~label:"Nickname" ~at:[] in
|
||||||
let email = mk_field `Text ~name:"email" ~label:"Email" ~at:[] in
|
let email = mk_field `Text ~name:"email" ~label:"Email" ~at:[] in
|
||||||
let password = mk_field `Password ~name:"password" ~label:"Password" ~at:[] in
|
let password = mk_field `Password ~name:"password" ~label:"Password" ~at:[] in
|
||||||
let btn = mk_btn_submit () in
|
let btn = mk_btn_submit () in
|
||||||
mk Register ~btn [ nick; email; password ]
|
let el = mk Register ~btn [ nick; email; password ] in
|
||||||
|
mk_box "Register" [ el ]
|
||||||
|
|
||||||
let mk_login () =
|
let mk_login () =
|
||||||
let nick = mk_field `Text ~name:"login" ~label:"Nickname or email" ~at:[] in
|
let nick = mk_field `Text ~name:"login" ~label:"Nickname or email" ~at:[] in
|
||||||
let password = mk_field `Password ~name:"password" ~label:"Password" ~at:[] in
|
let password = mk_field `Password ~name:"password" ~label:"Password" ~at:[] in
|
||||||
let btn = mk_btn_submit () in
|
let btn = mk_btn_submit () in
|
||||||
mk Login ~btn [ nick; password ]
|
let el = mk Login ~btn [ nick; password ] in
|
||||||
|
mk_box "Login" [ el ]
|
||||||
|
|
||||||
let mk_subject_field_unwraped () =
|
let mk_subject_field_unwraped () =
|
||||||
mk_field_unwraped `Text ~name:"subject" ~label:"Subject" ~at:[]
|
mk_field_unwraped `Text ~name:"subject" ~label:"Subject" ~at:[]
|
||||||
|
|
@ -226,7 +230,7 @@ let new_thread_el t_s =
|
||||||
mk Home ~btn [ subject; comment; image; lat; lng ]
|
mk Home ~btn [ subject; comment; image; lat; lng ]
|
||||||
|
|
||||||
let profile user =
|
let profile user =
|
||||||
let mk = mk Profile in
|
let mk ~btn l = mk Profile ~btn l in
|
||||||
let nickname =
|
let nickname =
|
||||||
let nick =
|
let nick =
|
||||||
mk_field `Text ~name:"nick" ~label:"Change nickname"
|
mk_field `Text ~name:"nick" ~label:"Change nickname"
|
||||||
|
|
@ -234,7 +238,7 @@ let profile user =
|
||||||
in
|
in
|
||||||
let btn = mk_btn_save () in
|
let btn = mk_btn_save () in
|
||||||
let form = mk ~btn [ nick ] in
|
let form = mk ~btn [ nick ] in
|
||||||
[ h2 "Nickname"; form ]
|
mk_box "Nickname" [ form ]
|
||||||
in
|
in
|
||||||
let bio =
|
let bio =
|
||||||
let bio =
|
let bio =
|
||||||
|
|
@ -243,7 +247,7 @@ let profile user =
|
||||||
in
|
in
|
||||||
let btn = mk_btn_save () in
|
let btn = mk_btn_save () in
|
||||||
let form = mk ~btn [ bio ] in
|
let form = mk ~btn [ bio ] in
|
||||||
[ h2 "Biography"; form ]
|
mk_box "Biography" [ form ]
|
||||||
in
|
in
|
||||||
let avatar =
|
let avatar =
|
||||||
(* TODO
|
(* TODO
|
||||||
|
|
@ -281,12 +285,12 @@ let profile user =
|
||||||
let btn = mk_btn_save () in
|
let btn = mk_btn_save () in
|
||||||
[ mk ~btn [ file_el; alt_el ] ]
|
[ mk ~btn [ file_el; alt_el ] ]
|
||||||
in
|
in
|
||||||
(h2 "Avatar" :: delete) @ upload
|
mk_box "Avatar" (delete @ upload)
|
||||||
in
|
in
|
||||||
nickname @ bio @ avatar
|
[ nickname; bio; avatar ]
|
||||||
|
|
||||||
let account user_private =
|
let account user_private =
|
||||||
let mk = mk Account in
|
let mk ~btn l = mk Account ~btn l in
|
||||||
let email =
|
let email =
|
||||||
let email =
|
let email =
|
||||||
mk_field `Text ~name:"email" ~label:"Email"
|
mk_field `Text ~name:"email" ~label:"Email"
|
||||||
|
|
@ -294,7 +298,7 @@ let account user_private =
|
||||||
in
|
in
|
||||||
let btn = mk_btn_save () in
|
let btn = mk_btn_save () in
|
||||||
let form = mk ~btn [ email ] in
|
let form = mk ~btn [ email ] in
|
||||||
[ h2 "Change email"; form ]
|
mk_box "Change email" [ form ]
|
||||||
in
|
in
|
||||||
let password =
|
let password =
|
||||||
let pw1 =
|
let pw1 =
|
||||||
|
|
@ -306,7 +310,7 @@ let account user_private =
|
||||||
in
|
in
|
||||||
let btn = mk_btn_save () in
|
let btn = mk_btn_save () in
|
||||||
let form = mk ~btn [ pw1; pw2 ] in
|
let form = mk ~btn [ pw1; pw2 ] in
|
||||||
[ h2 "Change password"; form ]
|
mk_box "Change password" [ form ]
|
||||||
in
|
in
|
||||||
let big_delete =
|
let big_delete =
|
||||||
let btn = mk_btn ~at:[ class' "delete-account-btn" ] "DELETE ACCOUNT" in
|
let btn = mk_btn ~at:[ class' "delete-account-btn" ] "DELETE ACCOUNT" in
|
||||||
|
|
@ -314,9 +318,9 @@ let account user_private =
|
||||||
mk ~btn
|
mk ~btn
|
||||||
[ El.input ~at:[ type' "hidden"; name "delete-account"; value "" ] () ]
|
[ El.input ~at:[ type' "hidden"; name "delete-account"; value "" ] () ]
|
||||||
in
|
in
|
||||||
[ h2 "Delete account"; form ]
|
mk_box "Delete account" [ form ]
|
||||||
in
|
in
|
||||||
email @ password @ big_delete
|
[ email; password; big_delete ]
|
||||||
|
|
||||||
let delete post =
|
let delete post =
|
||||||
let btn = mk_btn "DELETE" in
|
let btn = mk_btn "DELETE" in
|
||||||
|
|
|
||||||
|
|
@ -51,7 +51,9 @@ let reply_popup_el t_s w =
|
||||||
let el = El.div ~at:[ class' "reply-popup-content" ] [ form ] in
|
let el = El.div ~at:[ class' "reply-popup-content" ] [ form ] in
|
||||||
el
|
el
|
||||||
in
|
in
|
||||||
let el = El.div ~at:[ class' "reply-popup" ] [ dragzone; content ] in
|
let el =
|
||||||
|
El.div ~at:[ class' "reply-popup"; class' "form-box" ] [ dragzone; content ]
|
||||||
|
in
|
||||||
Html_form.Dragzone.f ~dragzone el;
|
Html_form.Dragzone.f ~dragzone el;
|
||||||
let is_open = S.map (fun t -> t.post_form.is_open) t_s in
|
let is_open = S.map (fun t -> t.post_form.is_open) t_s in
|
||||||
def_visibility `On is_open el;
|
def_visibility `On is_open el;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue