diff --git a/NAMESPACE b/NAMESPACE
index 7c27526..bca3902 100644
--- a/NAMESPACE
+++ b/NAMESPACE
@@ -20,10 +20,14 @@
 export(group_rows)
 export(html_dependency_bsTable)
 export(html_dependency_kePrint)
+export(html_dependency_lightable)
 export(kable)
 export(kableExtra_latex_packages)
 export(kable_as_image)
 export(kable_as_xml)
+export(kable_classic)
+export(kable_material)
+export(kable_minimal)
 export(kable_styling)
 export(landscape)
 export(linebreak)
diff --git a/R/kable_styling.R b/R/kable_styling.R
index 7e4c5e7..f8aacd0 100644
--- a/R/kable_styling.R
+++ b/R/kable_styling.R
@@ -10,7 +10,7 @@
 #' Please see package vignette or visit the w3schools'
 #' \href{https://www.w3schools.com/bootstrap/bootstrap_tables.asp}{Bootstrap Page}
 #' for more information. Possible options include `basic`, `striped`,
-#' `bordered`, `hover`, `condensed` and `responsive`.
+#' `bordered`, `hover`, `condensed`, `responsive` and `none`.
 #' @param latex_options A character vector for LaTeX table options. Please see
 #' package vignette for more information. Possible options include
 #' `basic`, `striped`, `hold_position`, `HOLD_position`, `scale_down` & `repeat_header`.
@@ -60,6 +60,9 @@
 #'  on your need.
 #' @param fixed_thead HTML table option so table header row is fixed at top.
 #' Values can be either T/F or `list(enabled = T/F, background = "anycolor")`.
+#' @param lightable_class Options to use the in-house lightable themes.
+#' Choices include `lightable-minimal`, `lightable-classic`,
+#' `lightable-material`, `lightable-striped` and `lightable-hover`.
 #'
 #' @details  For LaTeX, if you use other than English environment
 #' - all tables are converted to 'UTF-8'. If you use, for example, Hungarian
@@ -94,7 +97,8 @@
                           latex_table_env = NULL,
                           protect_latex = TRUE,
                           table.envir = "table",
-                          fixed_thead = FALSE) {
+                          fixed_thead = FALSE,
+                          lightable_class = NULL) {
 
   if (length(bootstrap_options) == 1 && bootstrap_options == "basic") {
     bootstrap_options <- getOption("kable_styling_bootstrap_options", "basic")
@@ -129,7 +133,8 @@
                              position = position,
                              font_size = font_size,
                              protect_latex = protect_latex,
-                             fixed_thead = fixed_thead))
+                             fixed_thead = fixed_thead,
+                             lightable_class = lightable_class))
   }
   if (kable_format == "latex") {
     if (is.null(full_width)) {
@@ -187,7 +192,8 @@
                                            "float_left", "float_right"),
                               font_size = NULL,
                               protect_latex = TRUE,
-                              fixed_thead = FALSE) {
+                              fixed_thead = FALSE,
+                              lightable_class = NULL) {
   if (protect_latex) {
     kable_input <- extract_latex_from_kable(kable_input)
   }
@@ -197,7 +203,8 @@
   # Modify class
   bootstrap_options <- match.arg(
     bootstrap_options,
-    c("basic", "striped", "bordered", "hover", "condensed", "responsive"),
+    c("basic", "striped", "bordered", "hover", "condensed", "responsive",
+      "none"),
     several.ok = T
   )
 
@@ -205,15 +212,24 @@
   if (xml_has_attr(kable_xml, "class")) {
     kable_xml_class <- xml_attr(kable_xml, "class")
   }
-  if (length(bootstrap_options) == 1 && bootstrap_options == "basic") {
-    bootstrap_options <- "table"
-  } else {
-    bootstrap_options <- bootstrap_options[bootstrap_options != "basic"]
-    bootstrap_options <- paste0("table-", bootstrap_options)
-    bootstrap_options <- c("table", bootstrap_options)
+
+  if (!is.null(lightable_class)) {
+    bootstrap_options <- "none"
+    xml_attr(kable_xml, "class") <- paste(kable_xml_class, lightable_class)
   }
-  xml_attr(kable_xml, "class") <- paste(c(kable_xml_class, bootstrap_options),
-                                        collapse = " ")
+
+  if (length(bootstrap_options) == 1 && bootstrap_options == "none") {
+  }else {
+    if (length(bootstrap_options) == 1 && bootstrap_options == "basic") {
+      bootstrap_options <- "table"
+    } else {
+      bootstrap_options <- bootstrap_options[bootstrap_options != "basic"]
+      bootstrap_options <- paste0("table-", bootstrap_options)
+      bootstrap_options <- c("table", bootstrap_options)
+    }
+    xml_attr(kable_xml, "class") <- paste(c(kable_xml_class, bootstrap_options),
+                                          collapse = " ")
+  }
 
   # Modify style
   kable_xml_style <- NULL
diff --git a/R/light_themes.R b/R/light_themes.R
new file mode 100644
index 0000000..f1ec579
--- /dev/null
+++ b/R/light_themes.R
@@ -0,0 +1,53 @@
+#' Alternative HTML themes
+#'
+#' @description kableExtra uses the built-in bootstrap themes by default in
+#' `kable_styling()`. Alternatively, you can use a customized table themes for
+#' your table. This `lightable` table style sheet comes with three formats,
+#' namely `lightable-minimal`, `lightable-classic` and `lightable-material` with
+#' `hover` and `striped` options.
+#'
+#' @param kable_input A HTML kable object.
+#' @param striped T/F for adding striped rows.
+#' @param hover T/F for adding hover effects.
+#' @param ... Everything else you need to specify in `kable_styling`.
+#'
+#' @export
+kable_classic <- function(kable_input, striped = FALSE,
+                          hover = FALSE, ...) {
+  light_class <- "lightable-classic"
+  if (striped) {
+    light_class <- paste(light_class, "lightable-striped")
+  }
+  if (hover) {
+    light_class <- paste(light_class, "lightable-hover")
+  }
+  kable_styling(kable_input, "none", lightable_class = light_class, ...)
+}
+
+#' @rdname kable_classic
+#' @export
+kable_minimal <- function(kable_input, striped = FALSE,
+                          hover = FALSE, ...) {
+  light_class <- "lightable-minimal"
+  if (striped) {
+    light_class <- paste(light_class, "lightable-striped")
+  }
+  if (hover) {
+    light_class <- paste(light_class, "lightable-hover")
+  }
+  kable_styling(kable_input, "none", lightable_class = light_class, ...)
+}
+
+#' @rdname kable_classic
+#' @export
+kable_material <- function(kable_input, striped = FALSE,
+                           hover = FALSE, ...) {
+  light_class <- "lightable-material"
+  if (striped) {
+    light_class <- paste(light_class, "lightable-striped")
+  }
+  if (hover) {
+    light_class <- paste(light_class, "lightable-hover")
+  }
+  kable_styling(kable_input, "none", lightable_class = light_class, ...)
+}
diff --git a/R/print.R b/R/print.R
index 04e55c1..6d1c534 100644
--- a/R/print.R
+++ b/R/print.R
@@ -5,7 +5,8 @@
     dep <- list(
       rmarkdown::html_dependency_jquery(),
       rmarkdown::html_dependency_bootstrap(theme = "cosmo"),
-      html_dependency_kePrint()
+      html_dependency_kePrint(),
+      html_dependency_lightable()
     )
     html_kable <- htmltools::browsable(
       htmltools::HTML(
@@ -17,7 +18,7 @@
     class(html_kable) <- "shiny.tag.list"
     print(html_kable)
   } else {
-    print(as.character(x))
+    cat(as.character(x))
   }
 }
 
@@ -43,6 +44,17 @@
                  stylesheet = "bootstrapTable.min.css")
 }
 
+#' HTML dependency for lightable
+#'
+#' @export
+html_dependency_lightable <- function() {
+  htmlDependency(name = "lightable",
+                 version = "0.0.1",
+                 src = system.file("lightable-0.0.1",
+                                   package = "kableExtra"),
+                 stylesheet = "lightable.css")
+}
+
 #' @export
 knit_print.kableExtra <- function(x, ...) {
   x <- paste0(x, "\n\n")
@@ -50,9 +62,10 @@
                              default = TRUE)
   if (kp_dependency) {
     meta_list <- list(html_dependency_kePrint())
+    meta_list[[2]] <- html_dependency_lightable()
     bs <- getOption("kableExtra.html.bsTable", default = FALSE)
     if (bs) {
-      meta_list[[2]] <- html_dependency_bsTable()
+      meta_list[[3]] <- html_dependency_bsTable()
     }
   } else {
     meta_list <- NULL
diff --git a/inst/NEWS.md b/inst/NEWS.md
index 6235eb8..b7de0c8 100644
--- a/inst/NEWS.md
+++ b/inst/NEWS.md
@@ -28,10 +28,14 @@
 
 * Fixed a bug when using UTF-8 on non-UTF-8 system. (#440, thanks @jokorn)
 
+* Added a global option to control whether to preview HTML tables in RStudio 
+viewer. If you want to disable the default behavior, try to set 
+`options(kableExtra_view_html = F)`. (#455)
 
 
-kableExtra ]
-1.1.0
+
+
+kableExtra 1.1.0
 --------------------------------------------------------------------------------
 
 # Major Changes
diff --git a/inst/lightable-0.0.1/lightable.css b/inst/lightable-0.0.1/lightable.css
new file mode 100644
index 0000000..4c45eb2
--- /dev/null
+++ b/inst/lightable-0.0.1/lightable.css
@@ -0,0 +1,81 @@
+/*!
+ * lightable v0.0.1
+ * Copyright 2020 Hao Zhu
+ * Licensed under MIT (https://github.com/haozhu233/kableExtra/blob/master/LICENSE)
+ */
+
+.lightable-minimal {
+  border-collapse: separate;
+  border-spacing: 16px 1px;
+  width: 100%;
+}
+
+.lightable-minimal thead tr th {
+  border-bottom: 2px solid black;
+  empty-cells: hide;
+}
+
+.lightable-minimal tbody tr:first-child td {
+  padding-top: 0.5em;
+}
+
+.lightable-minimal.lightable-hover tr:hover {
+  background-color: #f5f5f5;
+}
+
+.lightable-minimal.lightable-striped tr:nth-child(even) {
+  background-color: #f5f5f5;
+}
+
+.lightable-classic {
+  border-top: 2px solid #111111;
+  border-bottom: 2px solid #111111;
+  width: 100%;
+}
+
+.lightable-classic thead tr:last-child th {
+  border-bottom: 1px solid #111111;
+}
+
+.lightable-classic.lightable-hover tr:hover {
+  background-color: #f5f5f5;
+}
+
+.lightable-classic.lightable-striped tr:nth-child(even) {
+  background-color: #f5f5f5;
+}
+
+.lightable-material {
+  min-width: 100%;
+  white-space: nowrap;
+  table-layout: fixed;
+  font-family: Roboto, sans-serif;
+  border: 1px solid #EEE;
+  border-collapse: collapse;
+}
+
+.lightable-material th {
+  padding: 0.8em;
+  background-color: #f5f5f5;
+}
+
+.lightable-material td {
+  padding: 0.8em;
+  border-top: 1px solid #eeeeee;
+}
+
+.lightable-material.lightable-hover tr:hover {
+  background-color: #f5f5f5;
+}
+
+.lightable-material.lightable-striped tr:nth-child(even) {
+  background-color: #f5f5f5;
+}
+
+.lightable-material.lightable-striped td {
+  border: 0px;
+}
+
+.lightable-material.lightable-striped thead tr:last-child th {
+  border-bottom: 1px solid #ddd;
+}
diff --git a/man/add_header_above.Rd b/man/add_header_above.Rd
index 2f0d133..99e6931 100644
--- a/man/add_header_above.Rd
+++ b/man/add_header_above.Rd
@@ -33,7 +33,11 @@
 example, \code{c(" " = 1, "title" = 2)} can be used to create a new header row
 for a 3-column table with "title" spanning across column 2 and 3. For
 convenience, when \code{colspan} equals to 1, users can drop the \verb{ = 1} part.
-As a result, \code{c(" ", "title" = 2)} is the same as \code{c(" " = 1, "title" = 2)}.}
+As a result, \code{c(" ", "title" = 2)} is the same as \code{c(" " = 1, "title" = 2)}.
+Alternatively, a data frame with two columns can be provided: The first
+column should contain the header names (character vector) and the second
+column should contain the colspan (numeric vector). This input can be used
+if there are problems with unicode characters in the headers.}
 
 \item{bold}{A T/F value to control whether the text should be bolded.}
 
diff --git a/man/html_dependency_lightable.Rd b/man/html_dependency_lightable.Rd
new file mode 100644
index 0000000..8894860
--- /dev/null
+++ b/man/html_dependency_lightable.Rd
@@ -0,0 +1,11 @@
+% Generated by roxygen2: do not edit by hand
+% Please edit documentation in R/print.R
+\name{html_dependency_lightable}
+\alias{html_dependency_lightable}
+\title{HTML dependency for lightable}
+\usage{
+html_dependency_lightable()
+}
+\description{
+HTML dependency for lightable
+}
diff --git a/man/kable_classic.Rd b/man/kable_classic.Rd
new file mode 100644
index 0000000..b453748
--- /dev/null
+++ b/man/kable_classic.Rd
@@ -0,0 +1,30 @@
+% Generated by roxygen2: do not edit by hand
+% Please edit documentation in R/light_themes.R
+\name{kable_classic}
+\alias{kable_classic}
+\alias{kable_minimal}
+\alias{kable_material}
+\title{Alternative HTML themes}
+\usage{
+kable_classic(kable_input, striped = FALSE, hover = FALSE, ...)
+
+kable_minimal(kable_input, striped = FALSE, hover = FALSE, ...)
+
+kable_material(kable_input, striped = FALSE, hover = FALSE, ...)
+}
+\arguments{
+\item{kable_input}{A HTML kable object.}
+
+\item{striped}{T/F for adding striped rows.}
+
+\item{hover}{T/F for adding hover effects.}
+
+\item{...}{Everything else you need to specify in \code{kable_styling}.}
+}
+\description{
+kableExtra uses the built-in bootstrap themes by default in
+\code{kable_styling()}. Alternatively, you can use a customized table themes for
+your table. This \code{lightable} table style sheet comes with three formats,
+namely \code{lightable-minimal}, \code{lightable-classic} and \code{lightable-material} with
+\code{hover} and \code{striped} options.
+}
diff --git a/man/kable_styling.Rd b/man/kable_styling.Rd
index f21be79..49c17c8 100644
--- a/man/kable_styling.Rd
+++ b/man/kable_styling.Rd
@@ -20,7 +20,8 @@
   latex_table_env = NULL,
   protect_latex = TRUE,
   table.envir = "table",
-  fixed_thead = FALSE
+  fixed_thead = FALSE,
+  lightable_class = NULL
 )
 }
 \arguments{
@@ -30,7 +31,7 @@
 Please see package vignette or visit the w3schools'
 \href{https://www.w3schools.com/bootstrap/bootstrap_tables.asp}{Bootstrap Page}
 for more information. Possible options include \code{basic}, \code{striped},
-\code{bordered}, \code{hover}, \code{condensed} and \code{responsive}.}
+\code{bordered}, \code{hover}, \code{condensed}, \code{responsive} and \code{none}.}
 
 \item{latex_options}{A character vector for LaTeX table options. Please see
 package vignette for more information. Possible options include
@@ -94,6 +95,10 @@
 
 \item{fixed_thead}{HTML table option so table header row is fixed at top.
 Values can be either T/F or \code{list(enabled = T/F, background = "anycolor")}.}
+
+\item{lightable_class}{Options to use the in-house lightable themes.
+Choices include \code{lightable-minimal}, \code{lightable-classic},
+\code{lightable-material}, \code{lightable-striped} and \code{lightable-hover}.}
 }
 \description{
 This function provides a cleaner approach to modify the style
