Index: uspace/lib/ui/include/ui/pbutton.h
===================================================================
--- uspace/lib/ui/include/ui/pbutton.h	(revision 570a3f383acc893b1355dd2d5c791922b2885796)
+++ uspace/lib/ui/include/ui/pbutton.h	(revision 46b02cb1381abb734d570053a8c9d3992aecb1d7)
@@ -1,4 +1,4 @@
 /*
- * Copyright (c) 2022 Jiri Svoboda
+ * Copyright (c) 2023 Jiri Svoboda
  * All rights reserved.
  *
@@ -56,4 +56,6 @@
 extern void ui_pbutton_set_rect(ui_pbutton_t *, gfx_rect_t *);
 extern void ui_pbutton_set_default(ui_pbutton_t *, bool);
+extern bool ui_pbutton_get_light(ui_pbutton_t *);
+extern void ui_pbutton_set_light(ui_pbutton_t *, bool);
 extern errno_t ui_pbutton_set_caption(ui_pbutton_t *, const char *);
 extern errno_t ui_pbutton_paint(ui_pbutton_t *);
Index: uspace/lib/ui/private/pbutton.h
===================================================================
--- uspace/lib/ui/private/pbutton.h	(revision 570a3f383acc893b1355dd2d5c791922b2885796)
+++ uspace/lib/ui/private/pbutton.h	(revision 46b02cb1381abb734d570053a8c9d3992aecb1d7)
@@ -1,4 +1,4 @@
 /*
- * Copyright (c) 2022 Jiri Svoboda
+ * Copyright (c) 2023 Jiri Svoboda
  * All rights reserved.
  *
@@ -65,4 +65,6 @@
 	/** Button is selected as default */
 	bool isdefault;
+	/** Button light is on */
+	bool light;
 	/** Button is currently held down */
 	bool held;
Index: uspace/lib/ui/private/resource.h
===================================================================
--- uspace/lib/ui/private/resource.h	(revision 570a3f383acc893b1355dd2d5c791922b2885796)
+++ uspace/lib/ui/private/resource.h	(revision 46b02cb1381abb734d570053a8c9d3992aecb1d7)
@@ -1,4 +1,4 @@
 /*
- * Copyright (c) 2022 Jiri Svoboda
+ * Copyright (c) 2023 Jiri Svoboda
  * All rights reserved.
  *
@@ -66,4 +66,6 @@
 	/** Button face color */
 	gfx_color_t *btn_face_color;
+	/** Lit button face color */
+	gfx_color_t *btn_face_lit_color;
 	/** Button text color */
 	gfx_color_t *btn_text_color;
Index: uspace/lib/ui/src/pbutton.c
===================================================================
--- uspace/lib/ui/src/pbutton.c	(revision 570a3f383acc893b1355dd2d5c791922b2885796)
+++ uspace/lib/ui/src/pbutton.c	(revision 46b02cb1381abb734d570053a8c9d3992aecb1d7)
@@ -1,4 +1,4 @@
 /*
- * Copyright (c) 2022 Jiri Svoboda
+ * Copyright (c) 2023 Jiri Svoboda
  * All rights reserved.
  *
@@ -188,4 +188,24 @@
 }
 
+/** Get button light status.
+ *
+ * @param pbutton Button
+ * @return @c true iff light is on
+ */
+bool ui_pbutton_get_light(ui_pbutton_t *pbutton)
+{
+	return pbutton->light;
+}
+
+/** Turn button light on or off.
+ *
+ * @param pbutton Button
+ * @param light @c true iff button should be lit
+ */
+void ui_pbutton_set_light(ui_pbutton_t *pbutton, bool light)
+{
+	pbutton->light = light;
+}
+
 /** Set push button caption.
  *
@@ -327,4 +347,5 @@
 	gfx_rect_t irect;
 	gfx_coord_t thickness;
+	gfx_color_t *color;
 	bool depressed;
 	errno_t rc;
@@ -338,5 +359,8 @@
 	rect.p1.y = pbutton->rect.p1.y - thickness;
 
-	rc = gfx_set_color(pbutton->res->gc, pbutton->res->btn_face_color);
+	color = pbutton->light ? pbutton->res->btn_face_lit_color :
+	    pbutton->res->btn_face_color;
+
+	rc = gfx_set_color(pbutton->res->gc, color);
 	if (rc != EOK)
 		goto error;
Index: uspace/lib/ui/src/resource.c
===================================================================
--- uspace/lib/ui/src/resource.c	(revision 570a3f383acc893b1355dd2d5c791922b2885796)
+++ uspace/lib/ui/src/resource.c	(revision 46b02cb1381abb734d570053a8c9d3992aecb1d7)
@@ -1,4 +1,4 @@
 /*
- * Copyright (c) 2022 Jiri Svoboda
+ * Copyright (c) 2023 Jiri Svoboda
  * All rights reserved.
  *
@@ -62,4 +62,5 @@
 	gfx_color_t *btn_frame_color = NULL;
 	gfx_color_t *btn_face_color = NULL;
+	gfx_color_t *btn_face_lit_color = NULL;
 	gfx_color_t *btn_text_color = NULL;
 	gfx_color_t *btn_highlight_color = NULL;
@@ -114,4 +115,8 @@
 		goto error;
 
+	rc = gfx_color_new_rgb_i16(0xe8e8, 0xe8e8, 0xe8e8, &btn_face_lit_color);
+	if (rc != EOK)
+		goto error;
+
 	rc = gfx_color_new_rgb_i16(0, 0, 0, &btn_text_color);
 	if (rc != EOK)
@@ -227,4 +232,5 @@
 	resource->btn_frame_color = btn_frame_color;
 	resource->btn_face_color = btn_face_color;
+	resource->btn_face_lit_color = btn_face_lit_color;
 	resource->btn_text_color = btn_text_color;
 	resource->btn_highlight_color = btn_highlight_color;
@@ -263,4 +269,6 @@
 	if (btn_face_color != NULL)
 		gfx_color_delete(btn_face_color);
+	if (btn_face_lit_color != NULL)
+		gfx_color_delete(btn_face_lit_color);
 	if (btn_text_color != NULL)
 		gfx_color_delete(btn_text_color);
@@ -336,4 +344,5 @@
 	gfx_color_t *btn_frame_color = NULL;
 	gfx_color_t *btn_face_color = NULL;
+	gfx_color_t *btn_face_lit_color = NULL;
 	gfx_color_t *btn_text_color = NULL;
 	gfx_color_t *btn_highlight_color = NULL;
@@ -383,4 +392,8 @@
 		goto error;
 
+	rc = gfx_color_new_ega(0x30, &btn_face_lit_color);
+	if (rc != EOK)
+		goto error;
+
 	rc = gfx_color_new_ega(0x20, &btn_text_color);
 	if (rc != EOK)
@@ -486,4 +499,5 @@
 	resource->btn_frame_color = btn_frame_color;
 	resource->btn_face_color = btn_face_color;
+	resource->btn_face_lit_color = btn_face_lit_color;
 	resource->btn_text_color = btn_text_color;
 	resource->btn_highlight_color = btn_highlight_color;
@@ -522,4 +536,6 @@
 	if (btn_face_color != NULL)
 		gfx_color_delete(btn_face_color);
+	if (btn_face_lit_color != NULL)
+		gfx_color_delete(btn_face_lit_color);
 	if (btn_text_color != NULL)
 		gfx_color_delete(btn_text_color);
@@ -607,4 +623,5 @@
 	gfx_color_delete(resource->btn_frame_color);
 	gfx_color_delete(resource->btn_face_color);
+	gfx_color_delete(resource->btn_face_lit_color);
 	gfx_color_delete(resource->btn_text_color);
 	gfx_color_delete(resource->btn_highlight_color);
Index: uspace/lib/ui/test/pbutton.c
===================================================================
--- uspace/lib/ui/test/pbutton.c	(revision 570a3f383acc893b1355dd2d5c791922b2885796)
+++ uspace/lib/ui/test/pbutton.c	(revision 46b02cb1381abb734d570053a8c9d3992aecb1d7)
@@ -1,4 +1,4 @@
 /*
- * Copyright (c) 2022 Jiri Svoboda
+ * Copyright (c) 2023 Jiri Svoboda
  * All rights reserved.
  *
@@ -190,4 +190,40 @@
 }
 
+/** Get light gets internal field */
+PCUT_TEST(get_light)
+{
+	ui_pbutton_t *pbutton;
+	errno_t rc;
+
+	rc = ui_pbutton_create(NULL, "Hello", &pbutton);
+	PCUT_ASSERT_ERRNO_VAL(EOK, rc);
+
+	pbutton->light = true;
+	PCUT_ASSERT_TRUE(ui_pbutton_get_light(pbutton));
+
+	pbutton->light = false;
+	PCUT_ASSERT_FALSE(ui_pbutton_get_light(pbutton));
+
+	ui_pbutton_destroy(pbutton);
+}
+
+/** Set light sets internal field */
+PCUT_TEST(set_light)
+{
+	ui_pbutton_t *pbutton;
+	errno_t rc;
+
+	rc = ui_pbutton_create(NULL, "Hello", &pbutton);
+	PCUT_ASSERT_ERRNO_VAL(EOK, rc);
+
+	ui_pbutton_set_light(pbutton, true);
+	PCUT_ASSERT_TRUE(pbutton->light);
+
+	ui_pbutton_set_light(pbutton, false);
+	PCUT_ASSERT_FALSE(pbutton->light);
+
+	ui_pbutton_destroy(pbutton);
+}
+
 /** Set caption sets internal field */
 PCUT_TEST(set_caption)
