diff --git a/CHANGELOG.md b/CHANGELOG.md
index 8771808..e3ff673 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,9 @@
+## 1.4.0
+
+* Deprecated `OptionType.FLAG`, `OptionType.SINGLE`, and `OptionType.MULTIPLE`
+  in favor of `OptionType.flag`, `OptionType.single`, and `OptionType.multiple`
+  which follow the style guide.
+
 ## 1.3.0
 
 * Type `Command.run()`'s return value as `FutureOr<T>`.
diff --git a/lib/src/arg_parser.dart b/lib/src/arg_parser.dart
index ea8ede6..08234b9 100644
--- a/lib/src/arg_parser.dart
+++ b/lib/src/arg_parser.dart
@@ -121,7 +121,7 @@
         null,
         defaultsTo,
         callback == null ? null : (value) => callback(value as bool),
-        OptionType.FLAG,
+        OptionType.flag,
         negatable: negatable,
         hide: hide);
   }
@@ -161,7 +161,7 @@
   /// value will be `[]` rather than `null`, or `[defaultsTo]` if [defaultsTo]
   /// is passed.
   ///
-  /// If [splitCommas] is `true`, multiple options may be passed by writing
+  /// If [splitCommas] is `true`, multiple values may be passed by writing
   /// `--option a,b` in addition to `--option a --option b`. It defaults to
   /// `true` if [allowMultiple] is `true` and `false` otherwise.
   ///
@@ -189,7 +189,7 @@
     }
 
     _addOption(name, abbr, help, valueHelp, allowed, allowedHelp, defaultsTo,
-        callback, allowMultiple ? OptionType.MULTIPLE : OptionType.SINGLE,
+        callback, allowMultiple ? OptionType.multiple : OptionType.single,
         splitCommas: splitCommas, hide: hide);
   }
 
diff --git a/lib/src/option.dart b/lib/src/option.dart
index b7bb62b..8d4a917 100644
--- a/lib/src/option.dart
+++ b/lib/src/option.dart
@@ -57,7 +57,7 @@
   /// For example, if [name] is `flag`, the user can pass `--no-flag` to set its
   /// value to `false`.
   ///
-  /// This is `null` unless [type] is [OptionType.FLAG].
+  /// This is `null` unless [type] is [OptionType.flag].
   final bool negatable;
 
   /// The callback to invoke with the option's value when the option is parsed.
@@ -74,13 +74,13 @@
   final bool hide;
 
   /// Whether the option is boolean-valued flag.
-  bool get isFlag => type == OptionType.FLAG;
+  bool get isFlag => type == OptionType.flag;
 
   /// Whether the option takes a single value.
-  bool get isSingle => type == OptionType.SINGLE;
+  bool get isSingle => type == OptionType.single;
 
   /// Whether the option allows multiple values.
-  bool get isMultiple => type == OptionType.MULTIPLE;
+  bool get isMultiple => type == OptionType.multiple;
 
   Option._(
       this.name,
@@ -102,7 +102,7 @@
         // If the user doesn't specify [splitCommas], it defaults to true for
         // multiple options.
         this.splitCommas =
-            splitCommas == null ? type == OptionType.MULTIPLE : splitCommas {
+            splitCommas == null ? type == OptionType.multiple : splitCommas {
     if (name.isEmpty) {
       throw new ArgumentError('Name cannot be empty.');
     } else if (name.startsWith('-')) {
@@ -149,7 +149,10 @@
   /// An option that can only be `true` or `false`.
   ///
   /// The presence of the option name itself in the argument list means `true`.
-  static const FLAG = const OptionType._("OptionType.FLAG");
+  static const flag = const OptionType._("OptionType.flag");
+
+  @Deprecated("Use OptionType.flag instead.")
+  static const FLAG = flag;
 
   /// An option that takes a single value.
   ///
@@ -160,7 +163,10 @@
   ///     --mode=debug
   ///
   /// If the option is passed more than once, the last one wins.
-  static const SINGLE = const OptionType._("OptionType.SINGLE");
+  static const single = const OptionType._("OptionType.single");
+
+  @Deprecated("Use OptionType.single instead.")
+  static const SINGLE = single;
 
   /// An option that allows multiple values.
   ///
@@ -170,7 +176,10 @@
   ///
   /// In the parsed `ArgResults`, a multiple-valued option will always return
   /// a list, even if one or no values were passed.
-  static const MULTIPLE = const OptionType._("OptionType.MULTIPLE");
+  static const multiple = const OptionType._("OptionType.multiple");
+
+  @Deprecated("Use OptionType.multiple instead.")
+  static const MULTIPLE = multiple;
 
   final String name;
 
diff --git a/pubspec.yaml b/pubspec.yaml
index 2c5fa59..4985ea2 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -1,5 +1,5 @@
 name: args
-version: 1.3.0
+version: 1.4.0-dev
 author: "Dart Team <misc@dartlang.org>"
 homepage: https://github.com/dart-lang/args
 description: >
