diff --git a/reviewboard/accounts/tests/test_theme_form.py b/reviewboard/accounts/tests/test_theme_form.py
index e4dec9aa80b3e2a31f3438d6d823a3b35e158ad4..68c52d90fda9aea0a3e832d6269015cb73dc6738 100644
--- a/reviewboard/accounts/tests/test_theme_form.py
+++ b/reviewboard/accounts/tests/test_theme_form.py
@@ -53,9 +53,9 @@ class ThemeFormTests(kgb.SpyAgency, TestCase):
                          user=self.user)
 
         self.assertEqual(form.fields['ui_theme'].choices, [
-            ('default', 'Default appearance (Light mode)'),
-            ('dark', 'Dark mode (beta)'),
-            ('system', 'Use system theme (beta)'),
+            ('default', 'Default appearance (Use system theme)'),
+            ('light', 'Light mode'),
+            ('dark', 'Dark mode'),
         ])
 
     def test_load_with_defaults(self) -> None:
diff --git a/reviewboard/themes/code/theme_reviewboard.py b/reviewboard/themes/code/theme_reviewboard.py
new file mode 100644
index 0000000000000000000000000000000000000000..a1684c52ba2b10da362fda16b5da3764339ac762
--- /dev/null
+++ b/reviewboard/themes/code/theme_reviewboard.py
@@ -0,0 +1,137 @@
+"""Default code syntax highlighting themes for Review Board.
+
+Version Added:
+    7.0
+"""
+
+from __future__ import annotations
+
+from reviewboard.themes.code.base import (BaseCodeTheme,
+                                          CodeStyleRules,
+                                          Token)
+
+
+def _build_light_rules() -> CodeStyleRules:
+    return {
+        'background_color': '#FFFFFF',
+        'token_css': {
+            Token.COMMENT: 'italic #0000C0',
+            Token.COMMENT_PREPROC: '#612B00',
+            Token.COMMENT_SPECIAL: 'bold italic red',
+            Token.GENERIC_DELETED: '#A00000',
+            Token.GENERIC_EMPHASIS: 'italic',
+            Token.GENERIC_ERROR: '#FF0000',
+            Token.GENERIC_HEADING: 'bold #000080',
+            Token.GENERIC_INSERTED: '#004000',
+            Token.GENERIC_OUTPUT: '#808080',
+            Token.GENERIC_PROMPT: 'bold #000080',
+            Token.GENERIC_STRONG: 'bold',
+            Token.GENERIC_SUBHEADING: 'bold #800080',
+            Token.GENERIC_TRACEBACK: '#0040D0',
+
+            Token.KEYWORD: 'bold #770088',
+            Token.KEYWORD_CONSTANT: 'bold #770088',
+            Token.KEYWORD_DECLARATION: 'bold #770088',
+            Token.KEYWORD_NAMESPACE: 'bold #770088',
+            Token.KEYWORD_PSEUDO: '#AA22FF',
+            Token.KEYWORD_RESERVED: 'bold',
+            Token.KEYWORD_TYPE: 'bold',
+
+            Token.NUMBER: 'bold darkred',
+            Token.NUMBER_FLOAT: 'bold darkred',
+            Token.NUMBER_HEX: 'bold darkred',
+            Token.NUMBER_INTEGER_LONG: '#666666',
+            Token.NUMBER_INTEGER: 'bold darkred',
+            Token.NUMBER_OCTAL: 'bold darkred',
+
+            Token.STRING: 'darkred',
+            Token.STRING_BACKTICK: '#BB4444',
+            Token.STRING_CHAR: '#BB4444',
+            Token.STRING_DOC: 'darkred',
+            Token.STRING_DOUBLE: '#BB4444',
+            Token.STRING_ESCAPE: 'bold #BB6622',
+            Token.STRING_HEREDOC: '#BB4444',
+            Token.STRING_INTERPOLATE: 'bold red',
+            Token.STRING_OTHER: '#008000',
+            Token.STRING_REGEX: '#BB6688',
+            Token.STRING_SINGLE: '#BB4444',
+            Token.STRING_SYMBOL: '#B8860B',
+
+            Token.NAME_ATTRIBUTE: '#000080',
+            Token.NAME_BUILTIN_PSEUDO: 'bold darkred',
+            Token.NAME_BUILTIN: 'bold black',
+            Token.NAME_CLASS: 'black',
+            Token.NAME_CONSTANT: '#880000',
+            Token.NAME_DECORATOR: 'bold darkblue',
+            Token.NAME_ENTITY: 'bold #999999',
+            Token.NAME_EXCEPTION: 'bold #D2413A',
+            Token.NAME_FUNCTION: 'black',
+            Token.NAME_LABEL: 'black',
+            Token.NAME_NAMESPACE: 'black',
+            Token.NAME_TAG: 'bold #000080',
+            Token.NAME_VARIABLE_CLASS: '#B8860B',
+            Token.NAME_VARIABLE_GLOBAL: '#B8860B',
+            Token.NAME_VARIABLE_INSTANCE: '#B8860B',
+            Token.NAME_VARIABLE: 'black',
+
+            Token.OPERATOR: 'black',
+            Token.OPERATOR_WORD: 'bold',
+
+            Token.TEXT: 'black',
+
+            Token.WHITESPACE_EXTRA: {
+                'background': '#ee3434',
+            },
+        }
+    }
+
+
+class RBAutoCodeTheme(BaseCodeTheme):
+    """A theme using the current Review Board light/dark theme.
+
+    This will auto-select light mode or dark mode versions of the default
+    Review Board theme, based on the theme chosen.
+
+    Version Added:
+        7.0
+    """
+
+    theme_id = 'rb-auto'
+    name = 'Automatic'
+    html_data_theme_value = 'rb-auto'
+
+    has_light_style_rules = True
+
+    def build_light_style_rules(self) -> CodeStyleRules:
+        return _build_light_rules()
+
+
+class RBLightCodeTheme(BaseCodeTheme):
+    """A light mode theme.
+
+    This is the traditional light appearance used for Review Board.
+
+    Version Added:
+        7.0
+    """
+
+    theme_id = 'rb-light'
+    name = 'Light mode'
+    html_data_theme_value = 'rb-light'
+
+    has_light_style_rules = True
+
+    def build_light_style_rules(self) -> CodeStyleRules:
+        return _build_light_rules()
+
+
+class RBDarkCodeTheme(BaseCodeTheme):
+    """A dark mode theme.
+
+    Version Added:
+        7.0
+    """
+
+    theme_id = 'rb-dark'
+    name = 'Dark mode'
+    html_data_theme_value = 'rb-dark'
diff --git a/reviewboard/themes/tests/test_ui_theme_registry.py b/reviewboard/themes/tests/test_ui_theme_registry.py
index efcb749101209da9af3f5fe78bd2760913583ab9..9b335341abd38f7843ee81aa954bae558431f8ef 100644
--- a/reviewboard/themes/tests/test_ui_theme_registry.py
+++ b/reviewboard/themes/tests/test_ui_theme_registry.py
@@ -9,7 +9,7 @@ from __future__ import annotations
 from typing import TYPE_CHECKING
 
 from reviewboard.testing import TestCase
-from reviewboard.themes.ui.default import DarkUITheme, LightUITheme
+from reviewboard.themes.ui.default import DarkUITheme, SystemUITheme
 from reviewboard.themes.ui.registry import UIThemeRegistry
 
 if TYPE_CHECKING:
@@ -41,11 +41,12 @@ class UIThemeRegistryTests(TestCase):
 
     def test_get_theme_with_default(self) -> None:
         """Testing UIThemeRegistry.get_theme with ID 'default'"""
-        self.assertIsInstance(self.registry.get_theme('default'), LightUITheme)
+        self.assertIsInstance(self.registry.get_theme('default'),
+                              SystemUITheme)
 
     def test_get_default_theme_id(self) -> None:
         """Testing UIThemeRegistry.get_default_theme_id"""
-        self.assertEqual(self.registry.get_default_theme_id(), 'light')
+        self.assertEqual(self.registry.get_default_theme_id(), 'system')
 
     def test_get_default_theme_id_with_siteconfig(self) -> None:
         """Testing UIThemeRegistry.get_default_theme_id with custom default
@@ -68,4 +69,4 @@ class UIThemeRegistryTests(TestCase):
         }
 
         with self.siteconfig_settings(siteconfig_settings):
-            self.assertEqual(self.registry.get_default_theme_id(), 'light')
+            self.assertEqual(self.registry.get_default_theme_id(), 'system')
diff --git a/reviewboard/themes/ui/default.py b/reviewboard/themes/ui/default.py
index c98b3f42f91ec28558fe5577476b975b7975e7eb..81cd248f85ff43a56e8a43d1be930045c9978742 100644
--- a/reviewboard/themes/ui/default.py
+++ b/reviewboard/themes/ui/default.py
@@ -33,7 +33,7 @@ class DarkUITheme(BaseUITheme):
     """
 
     theme_id = 'dark'
-    name = _('Dark mode (beta)')
+    name = _('Dark mode')
     ink_color_scheme = InkColorScheme.DARK
 
 
@@ -48,5 +48,5 @@ class SystemUITheme(BaseUITheme):
     """
 
     theme_id = 'system'
-    name = _('Use system theme (beta)')
+    name = _('Use system theme')
     ink_color_scheme = InkColorScheme.SYSTEM
diff --git a/reviewboard/themes/ui/registry.py b/reviewboard/themes/ui/registry.py
index 5f3e5787f9c908291898a9d1d7f41de8e6e48848..6d84abdcefd786187aec17c34581c6e9b793cc36 100644
--- a/reviewboard/themes/ui/registry.py
+++ b/reviewboard/themes/ui/registry.py
@@ -20,11 +20,16 @@ class UIThemeRegistry(OrderedRegistry[BaseUITheme]):
     This provides functionality for looking up available UI themes,
     determining a default theme, and registering new themes.
 
+    Version Changed:
+        7.1:
+        The ``system`` theme is now the default when using the ``default``
+        theme.
+
     Version Added:
         7.0
     """
 
-    DEFAULT_THEME_ID = 'light'
+    DEFAULT_THEME_ID = 'system'
 
     lookup_attrs = ['theme_id']
 
