diff --git a/docs/source/API/core/stl-compat/pair.md b/docs/source/API/core/stl-compat/pair.md
deleted file mode 100644
index 2352e590a..000000000
--- a/docs/source/API/core/stl-compat/pair.md
+++ /dev/null
@@ -1,94 +0,0 @@
-# `Kokkos::pair`
-
-Header File: `Kokkos_Pair.hpp`
-
-An implementation of `std::pair` that is intended to be fully compatible, with the exception that `Kokkos::pair` will work on the device. Also provides utility functions to convert from and to `std::pair`
-
-Usage: 
-```c++
-std::pair<int, float> std_pair = std::make_pair(1,2.0f); 
-Kokkos::pair<int_float> kokkos_pair = Kokkos::make_pair(1,2.0f);
-Kokkos::pair<int, float> converted_std_pair(std_pair);
-std::pair<int,float> converted_kokkos_pair = kokkos_pair.to_std_pair();
-```
-
-## Synopsis 
-```c++
-template <class T1, class T2>
-struct pair {
-
-    typedef T1 first_type;
-    typedef T2 second_type;
-
-    first_type first;
-    second_type second;
-  
-    KOKKOS_DEFAULTED_FUNCTION constexpr pair() = default;
-    KOKKOS_FORCEINLINE_FUNCTION constexpr pair(first_type const& f,
-                                               second_type const& s);
-  
-    template <class U, class V>
-    KOKKOS_FORCEINLINE_FUNCTION constexpr pair(const pair<U, V>& p);
-
-    template <class U, class V>
-    KOKKOS_FORCEINLINE_FUNCTION pair<T1, T2>& operator=(const pair<U, V>& p);
-  
-    template <class U, class V>
-    pair(const std::pair<U, V>& p);
-  
-    std::pair<T1, T2> to_std_pair() const;
-};
-```
-
-### Public Class Members
-
-  * `first`: the first element in the pair
-  * `second`: the second element in the pair
-
-### Typedefs
-   
-  * `first_type`: the type of the first element in the pair
-  * `second_type`: the type of the second element in the pair
-
-### Constructors
-
-  * 
-  ```c++ 
-  KOKKOS_DEFAULTED_FUNCTION constexpr pair() = default;
-  ```
-
-  Default constructor. Initializes both data members with their defaults
-
-  * 
-  ```c++
-  KOKKOS_FORCEINLINE_FUNCTION constexpr pair(first_type const& f,
-                                  second_type const& s);
-  ```
-
-  Element-wise constructor. Assigns `first` the value of `f`, `second` the value of `s` 
-
-  * 
-  ```c++
-  template <class U, class V>
-  KOKKOS_FORCEINLINE_FUNCTION constexpr pair(const pair<U, V>& p);
-  ``` 
-      
-  Conversion from `std::pair`. Assigns each element of the pair to its corresponding element in the `p`
-
-### Assignment and conversion
-
-  * 
-  ```c++
-  template <class U, class V>
-  KOKKOS_FORCEINLINE_FUNCTION pair<T1, T2>& operator=(const pair<U, V>& p);
-  ```
-
-  Sets `first` to `p.first` and `second` to `p.second` 
-  ### Functions
-
-  * 
-  ```c++
-  std::pair<T1, T2> to_std_pair() const;
-  ```
-
-  Returns a `std::pair` whose contents match those of the `Kokkos::pair`. Useful for interacting with libraries that explicitly only accept `std::pair`
diff --git a/docs/source/API/core/stl-compat/pair.rst b/docs/source/API/core/stl-compat/pair.rst
new file mode 100644
index 000000000..c67287a1d
--- /dev/null
+++ b/docs/source/API/core/stl-compat/pair.rst
@@ -0,0 +1,70 @@
+``Kokkos::pair``
+================
+
+.. role:: cppkokkos(code)
+    :language: cppkokkos
+
+Header File: ``<Kokkos_Pair.hpp>``
+
+An implementation of ``std::pair`` that is intended to be fully compatible, with the exception that ``Kokkos::pair`` will work on the device. Also provides utility functions to convert from and to ``std::pair``
+
+Usage
+-----
+
+.. code-block:: cpp
+
+    std::pair<int, float> std_pair = std::make_pair(1,2.0f); 
+    Kokkos::pair<int_float> kokkos_pair = Kokkos::make_pair(1,2.0f);
+    Kokkos::pair<int, float> converted_std_pair(std_pair);
+    std::pair<int,float> converted_kokkos_pair = kokkos_pair.to_std_pair();
+
+Description
+-----------
+
+.. cppkokkos:struct:: template <class T1, class T2> pair
+
+    |
+
+    .. rubric:: Public Typedefs
+
+    .. cppkokkos:type:: T1 first_type;
+
+        The type of the first element in the pair.
+
+    .. cppkokkos:type:: T2 second_type;
+
+        The type of the second element in the pair.
+    
+    .. cppkokkos:var:: first_type first;
+
+        The first element in the pair.
+
+    .. cppkokkos:var:: second_type second;
+
+        The second element in the pair.
+
+    .. rubric:: Constructors
+
+    .. cppkokkos:function:: KOKKOS_DEFAULTED_FUNCTION constexpr pair() = default;
+
+        Default constructor. Initializes both data members with their defaults.
+
+    .. cppkokkos:function:: KOKKOS_FORCEINLINE_FUNCTION constexpr pair(first_type const& f, second_type const& s);
+
+        Element-wise constructor. Assigns ``first`` the value of ``f``, ``second`` the value of ``s``.
+
+    .. cppkokkos:function:: template <class U, class V> KOKKOS_FORCEINLINE_FUNCTION constexpr pair(const pair<U, V>& p);
+
+        Conversion from ``std::pair``. Assigns each element of the pair to its corresponding element in the ``p``.
+
+    .. rubric:: Assignment and conversion
+
+    .. cppkokkos:function:: template <class U, class V> KOKKOS_FORCEINLINE_FUNCTION pair<T1, T2>& operator=(const pair<U, V>& p);
+
+        Sets ``first`` to ``p.first`` and ``second`` to ``p.second``.
+
+    .. rubric:: Functions
+
+    .. cppkokkos:function:: std::pair<T1, T2> to_std_pair() const;
+
+        Returns a ``std::pair`` whose contents match those of the ``Kokkos::pair``. Useful for interacting with libraries that explicitly only accept ``std::pair``.