diff --git a/man/theme_ids.Rd b/man/theme_ids.Rd
new file mode 100644
index 0000000..7f64164
--- /dev/null
+++ b/man/theme_ids.Rd
@@ -0,0 +1,72 @@
+% Generated by roxygen2: do not edit by hand
+% Please edit documentation in R/ggplot-theme.R
+\name{theme_ids}
+\alias{theme_ids}
+\title{IDS Theme for ggplot2}
+\usage{
+theme_ids(
+  base_size = 14,
+  base_family = idsBaseFontFamily,
+  style = c("default", "light", "dark"),
+  bgcolor = NULL
+)
+}
+\arguments{
+\item{base_size}{base font size, given in pts.}
+
+\item{base_family}{base font family}
+
+\item{style}{\code{'light'}, \code{'dark'}.}
+
+\item{bgcolor}{Deprecated}
+}
+\description{
+Based on Highcharts ggtheme \link[ggthemes]{theme_hc}
+which again is based on the plots in \url{Highcharts JS}.
+}
+\note{
+Note that here, unlike with the highcharter theme, you have to set the scale
+explicitly.
+}
+\examples{
+library(ggplot2)
+library(idsThemeR)
+
+if (interactive()) {
+p <- ggplot(mtcars) + geom_point(aes(x = wt, y = mpg,
+     colour = factor(gear))) + facet_wrap(~am)
+p + theme_ids() + scale_colour_ids()
+p + theme_ids(style = "dark") +
+  scale_colour_ids("dark")
+
+dtemp <- data.frame(Months = factor(rep(substr(month.name, 1, 3), 4),
+                                    levels = substr(month.name, 1, 3)),
+                    City = rep(c("Tokyo", "New York", "Berlin", "London"),
+                               each = 12),
+                    Temperature = c(7.0, 6.9, 9.5, 14.5, 18.2, 21.5,
+                             25.2, 26.5, 23.3, 18.3, 13.9, 9.6,
+                             -0.2, 0.8, 5.7, 11.3, 17.0, 22.0,
+                             24.8, 24.1, 20.1, 14.1, 8.6, 2.5,
+                             -0.9, 0.6, 3.5, 8.4, 13.5, 17.0,
+                             18.6, 17.9, 14.3, 9.0, 3.9, 1.0,
+                             3.9, 4.2, 5.7, 8.5, 11.9, 15.2,
+                             17.0, 16.6, 14.2, 10.3, 6.6, 4.8))
+
+ggplot(dtemp, aes(x = Months, y = Temperature, group = City, color = City)) +
+  geom_line() +
+  geom_point(size = 1.1) +
+  ggtitle("Monthly Average Temperature", subtitle="Source: WorldClimate.com") +
+  theme_ids() +
+  scale_colour_ids()
+
+}
+
+}
+\references{
+\link[ggthemes]{theme_hc}
+
+\url{http://www.highcharts.com/demo/line-basic}
+
+\url{https://github.com/highslide-software/highcharts.com/tree/master/js/themes}
+}
+\concept{themes ids}
